Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Ayuda de Android con cambiar el tipo de fuente del botón, ¿cómo?

Me gustaría cambiar la fuente que aparece en el texto del botón, he logrado hacer esto con texto en la pantalla, textview, pero no puedo encontrar ninguna información, o ayuda con la aplicación de este a un botón.

Soy novato, por lo que proporcionar el código para hacerlo, sería muy apreciado. Esto es lo que estoy usando para la vista de texto, pero ¿cómo puedo cambiar la fuente del botón?

  • PANIC: Ruptura de la ruta del sistema AVD. Compruebe su ANDROID_SDK_ROOT valor
  • Visualización de un cursor de la base de datos de Android
  • Profile.getCurrentProfile () devuelve null después de iniciar sesión (FB API v4.0)
  • Android SharedPreferences en Fragmento
  • Ocultar el tiempo en la notificación de Android sin utilizar diseño personalizado
  • Cómo comprobar si mi aplicación es el iniciador predeterminado
  • TextView txt = (TextView) findViewById(R.id.custom_font); Typeface font = Typeface.createFromAsset(getAssets(), "1543Humane_jenson_bold.TTF"); txt.setTypeface(font); 

    Gracias Lucy x

  • LogCat & Console dejó de funcionar con Eclipse Android Emulator
  • Android fastScroll sólo cubre parte de la lista
  • Fugas de memoria con una fuente personalizada para establecer la fuente personalizada
  • ActionBarSherlock menú de texto del panel de menú duro
  • Cómo iterar a través de todos los objetos Bundle
  • ¿Buenas prácticas para hacer frente al costoso cálculo de la altura de la vista?
  • 3 Solutions collect form web for “Ayuda de Android con cambiar el tipo de fuente del botón, ¿cómo?”

    El botón IS-A TextView, tan apenas lo hace como con un TextView:

     Button txt = (Button) findViewById(R.id.custom_font); Typeface font = Typeface.createFromAsset(getAssets(), "1543Humane_jenson_bold.TTF"); txt.setTypeface(font); 

    Utilizo como esto para el botón y funcionó (igual que para TextView).

      Button enter=(Button) findViewById(R.id.enter); Typeface type=Typeface.createFromAsset(getAssets(), "arial.ttf"); enter.setTypeface(type); 

    Espero eso ayude…

    Si planea agregar la misma fuente a varios botones, sugiero que vaya todo el camino y lo implemente como un botón de estilo y subclase:

     public class ButtonPlus extends Button { public ButtonPlus(Context context) { super(context); } public ButtonPlus(Context context, AttributeSet attrs) { super(context, attrs); CustomFontHelper.setCustomFont(this, context, attrs); } public ButtonPlus(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); CustomFontHelper.setCustomFont(this, context, attrs); } } 

    Esta es una clase de ayuda para establecer una fuente en un TextView (recuerde, Button es una subclase de TextView) basada en el atributo com.my.package: font:

     public class CustomFontHelper { /** * Sets a font on a textview based on the custom com.my.package:font attribute * If the custom font attribute isn't found in the attributes nothing happens * @param textview * @param context * @param attrs */ public static void setCustomFont(TextView textview, Context context, AttributeSet attrs) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomFont); String font = a.getString(R.styleable.CustomFont_font); setCustomFont(textview, font, context); a.recycle(); } /** * Sets a font on a textview * @param textview * @param font * @param context */ public static void setCustomFont(TextView textview, String font, Context context) { if(font == null) { return; } Typeface tf = FontCache.get(font, context); if(tf != null) { textview.setTypeface(tf); } } } 

    Y aquí está el FontCache para reducir el uso de memoria en dispositivos antiguos:

     public class FontCache { private static Hashtable<String, Typeface> fontCache = new Hashtable<String, Typeface>(); public static Typeface get(String name, Context context) { Typeface tf = fontCache.get(name); if(tf == null) { try { tf = Typeface.createFromAsset(context.getAssets(), name); } catch (Exception e) { return null; } fontCache.put(name, tf); } return tf; } } 

    En res / values ​​/ attrs.xml definimos el atributo personalizable de estilo

     <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CustomFont"> <attr name="font" format="string"/> </declare-styleable> </resources> 

    Y finalmente un ejemplo de uso en un diseño:

     <com.my.package.buttons.ButtonPlus style="@style/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_sometext"/> 

    Y en res / values ​​/ style.xml

     <style name="button" parent="@android:style/Widget.Button"> <item name="com.my.package:font">fonts/copperplate_gothic_light.TTF</item> </style> 

    Esto puede parecer una gran cantidad de trabajo, pero me agradecerá una vez que tenga par de puñados de botones y campos de texto en los que desee cambiar la fuente.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.