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?

  • Adb shell dumpsys meminfo - ¿Cuál es el significado de cada celda de su salida?
  • Permisos que no funcionan
  • Android: Tutorial sobre la creación de vistas personalizadas
  • ¿Cómo obtener todas las vistas en una actividad?
  • ¿Cómo puedo actualizar una sola fila en un ListView?
  • Problema: Pasar datos grandes a la segunda actividad
  • TextView txt = (TextView) findViewById(R.id.custom_font); Typeface font = Typeface.createFromAsset(getAssets(), "1543Humane_jenson_bold.TTF"); txt.setTypeface(font); 

    Gracias Lucy x

  • ¿Existe una manera fácil de crear un fragmento de botón de acción?
  • Obtener el nombre de ubicación actual del usuario sin necesidad de utilizar gps o Internet, sino mediante Network_Provider en android
  • Fragmento de Android: findViewById devuelve null
  • Generar Editar Texto Programaticamente en android
  • ¿Cuál es el equivalente de "colspan" en un Android TableLayout?
  • Profile.getCurrentProfile () devuelve null después de iniciar sesión (FB API v4.0)
  • 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.