Aide d'Android avec la modification du type de police du bouton, comment?

J'aimerais changer la police qui apparaît sur le texte du bouton, j'ai réussi à le faire avec du texte sur l'écran, la visualisation de texte, mais je ne peux pas trouver d'informations ou aidez-les à appliquer un bouton.

Je suis novice, alors, en fournissant le code pour le faire, serait très apprécié. C'est ce que j'utilise pour la visualisation de texte, mais comment changer la police de bouton?

  • Ouvrez une application Android lorsque la connexion Internet est activée. N'affichez aucun message de connexion Internet
  • Le type de diamant n'est pas pris en charge à ce niveau de langue
  • UserRecoverableAuthException: NeedPermission
  • Taille de police différente des chaînes dans le même TextView
  • Android - Comment obtenir une liste de paramètres AudioManager / AudioSystem
  • Comment empêcher la connexion RFCOMM bluetooth Android de mourir immédiatement après .connect ()?
  • TextView txt = (TextView) findViewById(R.id.custom_font); Typeface font = Typeface.createFromAsset(getAssets(), "1543Humane_jenson_bold.TTF"); txt.setTypeface(font); 

    Merci Lucy x

  • GCM: MulticastResult - quel résultat provient de quel périphérique?
  • Comprendre la matrice de projection libGDX
  • Angular Js et Trigger.io - Ne peut pas suivre un lien sur Android qui fonctionne sur iOS
  • Suppression des espaces de la chaîne
  • Comment envoyer des caractères unicode dans un HttpPost sur Android
  • L'exportation d'Android donne une "conversion à l'erreur de type Dalvik1"
  • 3 Solutions collect form web for “Aide d'Android avec la modification du type de police du bouton, comment?”

    Bouton IS-A TextView, alors faites-le simplement comme avec un TextView:

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

    J'utilise comme ceci pour le bouton et il a fonctionné (même que pour TextView).

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

    J'espère que cela aide…

    Si vous prévoyez d'ajouter la même police à plusieurs boutons, je vous suggère d'aller jusqu'au bout et de l'implémenter comme un bouton de style et de sous-classe:

     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); } } 

    Il s'agit d'une classe d'aide pour définir une police sur un TextView (rappelez-vous, Button est une sous-classe de TextView) en fonction de l'attribut 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); } } } 

    Et voici FontCache pour réduire l'utilisation de la mémoire sur les périphériques plus anciens:

     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, nous définissons l'attribut personnalisable personnalisé

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

    Et enfin, un exemple est utilisé dans une mise en page:

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

    Et 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> 

    Cela peut sembler beaucoup de travail, mais vous me remercierez une fois que vous avez quelques poignées de boutons et de champs de texte sur lesquels vous souhaitez modifier la police.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.