Adición del android personalizado de la fuente usando lib

Estoy utilizando la librería personalizada de la fuente del androide https://github.com/chrisjenx/Calligraphy .

Pero no hay ningún efecto en textview. Estoy utilizando el siguiente código:

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(new CalligraphyContextWrapper(newBase)); } } 

En XML:

 <TextView tools:context="" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Touch Listner" android:textSize="18sp" app:fontPath="fonts/gotham-book.ttf" /> 

En attrs:

 <resources> <attr name="fontPath" format="string"/> </resources> 

En los activos / font / gotham-book.ttf

Cree la clase que extiende Application, ahora y el código siguiente en ella. Y declararlo en manifiesto bajo etiqueta de aplicación.

  CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("fonts/Roboto-ThinItalic.ttf") .setFontAttrId(R.attr.fontPath) .build() ); 

Quite el espacio de nombres de TextView .

 <TextView tools:context="" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Touch Listner" android:textSize="18sp" fontPath="fonts/gotham-book.ttf" /> 

(Cambiar app:fontPath a fontPath )

Molesto no podemos resolver el espacio de nombres auto-res.

Cree la clase que extiende Application . Algo como eso:

 public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("fonts/DINNextLTPro-Regular.otf") .setFontAttrId(R.attr.fontPath) .build() ); } } 

Lo siguiente que debemos hacer es abrir el archivo AndroidManifest.xml de nuestra aplicación y añadir una referencia a MyApplication en el atributo android:name de la etiqueta de la aplicación, por lo que al final el archivo de manifiesto se verá similar a éste:

 <?xml version="1.0" encoding="utf-8"?> <manifest package="it.sbsmobile.golife" xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" android:name="com.example.MyApplication"> <activity android:name=".Profile1" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> 

También, las instrucciones en https://github.com/chrisjenx/Calligraphy dicen para inyectar en el contexto, sobreponiendo un método en la actividad como sigue:

 @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); } 

Fuente: LINK

¿Por qué extender la clase de aplicación? RESPONDER

1) Descargue y copie el archivo de fuente (yourfont.ttf) en la carpeta de activos de su proyecto

2) En su Actividad / Fragmento utilice el siguiente código para cargar la fuente

  Typeface yourfont = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf"); 

3) Encuentre su TextView (o cualquier otra vista en la que desee establecer esta fuente) y utilice el método setTypeface de la vista. p.ej.

 TextView textview1 = (TextView) findViewById(R.id.exampletextview); textview1.setTypeface(yourfont); 

Esto, por supuesto, viene con un inconveniente, que si hay un montón de vistas que desea aplicar la fuente a usted tendría manualmente setTypeface para cada uno de la vista. En ese caso, puede crear una vista personalizada ampliando la clase Textview. Algo como el siguiente código:

 public class MyTextView extends TextView { public MyTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public MyTextView(Context context) { super(context); init(); } public void init() { Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/yourfont.ttf"); setTypeface(tf ,1); } 

}

Y utilizar esto en xml como <com.yourpackagename.MyTextView /> nombre de <com.yourpackagename.MyTextView />

He utilizado TypefaceTextView lib para obtener los resultados que desea. Por favor, eche un vistazo a ( https://github.com/ragunathjawahar/android-typeface-textview ).

También puede usar la biblioteca de EasyFonts de terceros para establecer variedad de fuentes personalizadas en su TextView . Al utilizar esta biblioteca, no debería preocuparse por descargar y agregar fuentes a la carpeta assets / fonts. También sobre la creación de objetos Typeface.

Se proporcionan las caras de fuente. ¿Qué te gustaría usar?

  • Roboto
  • Droid Serif
  • Robot droid
  • Libertad
  • Diversión Raiser
  • Android Nation
  • Aguacate Verde
  • Reconocimiento

Simplemente:

 TextView myTextView = (TextView)findViewById(R.id.myTextView); myTextView.setTypeface(EasyFonts.robotoThin(this)); 

Yo tuve el mismo problema.

Aquí, usted necesita hacer dos cosas.

En primer lugar, en xml, agregue dos líneas (como se muestra a continuación) en la raíz del diseño

 xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingPrefix" 

Y por último, en la clase de actividad,

 protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); } 

¡Yooooo, está hecho !! Sencillo

Ejemplo: http://i.stack.imgur.com/F87JE.png

  • Android: Necesito una vista previa circular de la cámara. ¿Cómo lograrlo?
  • ¿Cómo extracto el texto de un xml anidado usando xmlpullparser en android?
  • Dibuja un círculo en una vista (android)
  • Las comillas no se muestran en la pantalla
  • Mi aplicación no está visible en Google Play Store para Samsung Galaxy Note 4
  • ¿Cómo puedo utilizar EditText en lugar de TextView y abrir la fechaPicker en un solo clic?
  • Android Studio AndroidManifest.xml vs build.gradle
  • XML vinculante herramientas para Android
  • Crear vista sobre cardview en android
  • No se puede activar el modo de vista previa Android Studio
  • Android Studio - Importación de la biblioteca Simple-Xml
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.