Android: Crouton lib y fuente personalizada

Yo uso fuentes personalizadas en mi aplicación así que quiero una fuente personalizada para Crouton. He intentado hacerlo con setTextAppearance, no funciona.

<?xml version="1.0" encoding="utf-8"?> <com.ecab.ui.custom.TextViewCustomFont xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res/com.crouton" android:id="@+id/crouton" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/ban_confirmation" android:gravity="center" android:text="TEST" android:textColor="@android:color/white" custom:typeface="gothamBold" /> 

En clase de estilo:

 INFOCUSTOM = new Builder().setDuration(3000).setTextAppearance(R.id.crouton).build(); 

Entonces, he tratado de hacerlo cambiando setTypeface () con mi fuente, no funciona.

En la clase Crouton:

 private TextView initializeTextView(final Resources resources) { TextView text = new TextView(this.activity); text.setId(TEXT_ID); text.setText(this.text); text.setTypeface(MyFonts.getGothamBookBold(this.activity)); Log.d(Constants.D_TAG, "chaneg the typeFace"); text.setGravity(this.style.gravity); // set the text color if set if (this.style.textColorResourceId != 0) { text.setTextColor(resources.getColor(this.style.textColorResourceId)); } // Set the text size. If the user has set a text size and text // appearance, the text size in the text appearance // will override this. if (this.style.textSize != 0) { text.setTextSize(TypedValue.COMPLEX_UNIT_SP, this.style.textSize); } // Setup the shadow if requested if (this.style.textShadowColorResId != 0) { initializeTextViewShadow(resources, text); } // Set the text appearance if (this.style.textAppearanceResId != 0) { text.setTextAppearance(this.activity, this.style.textAppearanceResId); } return text; } 

¿Qué puedo hacer para tener una fuente personalizada?

Ps: library version ==> 1.7

3 Solutions collect form web for “Android: Crouton lib y fuente personalizada”

Bien, encontré el problema!

Funciona con la segunda solución cambiando la tipografía. Acabo de olvidarme de quitar el

 setTextAppearance(R.id.crouton) 

En la clase Estilo. Así que mi estilo personalizado es así:

 INFOCUSTOM = new Builder().setDuration(3000).setBackgroundDrawable(R.drawable.ban_confirmation).setHeight(LayoutParams.WRAP_CONTENT) .build(); 

Un problema se resuelve, otro llega :)! Con el fondo dibujable, el texto no es verticalmente centro

Puede usar un estilo personalizado que use el resourceId de su aspecto de texto a través de Style.Builder.setTextAppearance (…).

Esto toma una referencia de tu styles.xml y la usa dentro del TextView interno del Crouton.

A continuación, puede llamar a Crouton.makeText o Crouton.showText con su estilo personalizado.

Fuente

¿Cómo se ve MyFonts.getGothamBookBold() ?

Sin embargo, esto debería funcionar:

  private TextView initializeTextView(final Resources resources) { TextView text = new TextView(this.activity); text.setId(TEXT_ID); text.setText(this.text); Typeface myTypeFace = Typeface.createFromAsset(this.activity.getAssets(), "gothamBold.ttf"); text.setTypeface(myTypeFace); text.setGravity(this.style.gravity); // set the text color if set if (this.style.textColorResourceId != 0) { text.setTextColor(resources.getColor(this.style.textColorResourceId)); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.