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

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.