tipo studio programacion personalizadas letra fuentes font family como agregar android text fonts

studio - Android: cómo configurar una fuente personalizada para toda la aplicación



fuentes personalizadas android (5)

Posible duplicado:
¿Es posible configurar la fuente para toda la Aplicación?

Necesito establecer una fuente personalizada (formato .ttf) para toda la aplicación, ¿cómo puedo hacerlo? Desde Manifiesto o XML sería la mejor opción si es posible


Cera una subclase TextView y úsala en todos lados

public class RobotoTextView extends TextView { public RobotoTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public RobotoTextView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public RobotoTextView(Context context) { super(context); init(); } private void init() { if (!isInEditMode()) { Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Light.ttf"); setTypeface(tf); } } }

uso

<com.test.RobotoTextView android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" />

en código java, puedes convertirlo a TextView


Podrías hacerlo así. Cree una vista de texto personalizada y utilícela en todas partes

public class MyTextView extends android.widget.TextView { public MyTextView(Context context) { this(context, null); } public MyTextView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public MyTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs); if (this.isInEditMode()) return ; final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SomeStyle); final String customFont = a.getString(R.styleable.SomeStyle_font); //Build a custom typeface-cache here! this.setTypeface( Typeface.createFromAsset(context.getAssets(), customFont) ); } }

Agregue esto a attrs.xml

<declare-styleable name="SomeStyle"> <attr name="font" format="string" /> </declare-styleable>

Luego, en su tema, haga esto: Esto asegurará que todas las textviews usarán el estilo MyTextView.

<item name="android:textViewStyle">@style/MyTextView</item>

Y ahora podemos definir su fuente personalizada usando su atributo personalizado en este estilo.

<style name="MyTextView" parent="@android:style/Widget.TextView"> <item name="font">MyPathToFontInAssets.ttf</item> </style>

Entonces, siempre que use MyTextView en el proyecto, tendrá su fuente personalizada.

IMPORTANTE: los tipos de letra no se almacenan en caché, por lo que si planea usar este código, también debe crear un caché de tipo de letra personalizado para que pueda volver a utilizar el tipo de letra personalizado para todas las textviews. ¡Esto acelerará significativamente la aplicación!

ACTUALIZACIÓN: Como decía Amir, esto es casi lo mismo que las fuentes personalizadas y los diseños XML (Android), pero también uso el estilo de Android para usarlo automáticamente en todas las textviews de la aplicación.


Puede ampliar el TextView como se sugiere here y configurar su tipo de letra para luego usarlo en toda la aplicación.


EDITAR Sept 2014:

Para cualquiera que todavía vea esta vieja y terrible respuesta, la verdadera y buena respuesta está aquí:

https://.com/a/16883281/1154026

ANTIGUO:

Tu mejor apuesta sería esta:

Personaliza las fuentes de Android

Asi que

TextView text = (TextView) findViewById(R.id.custom_font); Typeface font = Typeface.createFromAsset(getAssets(), "yourfont.ttf"); text.setTypeface(font);

Con su .ttf en la raíz de la carpeta "assets".


TextView tv=(TextView)findViewById(R.id.custom); Typeface face=Typeface.createFromAsset(getAssets(), "fonts/Verdana.ttf"); tv.setTypeface(face);

ponga el archivo de fuente en la carpeta de fuentes en / res /

Me gusta mi respuesta si es útil ...