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?

  • Comment obtenez-vous les serveurs DNS actuels pour Android?
  • Commutateur Android personnalisé à gauche et à droite
  • Détecter si un VideoVIew est en mémoire tampon
  • La colonne Android '_id' n'existe pas?
  • Obtenir une erreur dans la visualisation sur le sandwich à la crème glacée
  • L'élévation sur Android Lollipop ne fonctionne pas
  • TextView txt = (TextView) findViewById(R.id.custom_font); Typeface font = Typeface.createFromAsset(getAssets(), "1543Humane_jenson_bold.TTF"); txt.setTypeface(font); 

    Merci Lucy x

  • Impossible de trouver la propriété 'xxxx' sur com.android.build.gradle.AppExtension_Decorated
  • Android 4.4.2 et clavier doux. Optionmenu est-il possible? "La méthode WebView non implémentée onKeyDown appelée depuis" est survenue
  • L'emplacement de android sdk n'a pas été configuré dans les préférences dans Mac OS?
  • Android Emulator Tips and Tricks
  • Comment puis-je étendre correctement une classe de mise en page?
  • L'application Android Alibaba provoque une panne lorsque vous essayez d'ouvrir une URL
  • 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.