在styles.xml中设置特定的字体

我正在为我的android应用程序定义一个样式XML。 我想要使​​用一些TTF文件,如何将字体设置为字体,而不是通用的“sans”,“serif”和“monospace”。 谢谢

Solutions Collecting From Web of "在styles.xml中设置特定的字体"

您只能通过Java代码使用自定义字体,而不能通过布局XML或样式/主题 – 对不起!

TextViewPlus.java:

package com.example; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; import android.util.AttributeSet; import android.util.Log; import android.widget.TextView; public class TextViewPlus extends TextView { private static final String TAG = "TextView"; public TextViewPlus(Context context) { super(context); } public TextViewPlus(Context context, AttributeSet attrs) { super(context, attrs); setCustomFont(context, attrs); } public TextViewPlus(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setCustomFont(context, attrs); } private void setCustomFont(Context ctx, AttributeSet attrs) { TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TextViewPlus); String customFont = a.getString(R.styleable.TextViewPlus_customFont); setCustomFont(ctx, customFont); a.recycle(); } public boolean setCustomFont(Context ctx, String asset) { Typeface tf = null; try { tf = Typeface.createFromAsset(ctx.getAssets(), asset); } catch (Exception e) { Log.e(TAG, "Could not get typeface: "+e.getMessage()); return false; } setTypeface(tf); return true; } } 

attrs.xml 🙁在res / values中)

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

main.xml中:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:foo="http://schemas.android.com/apk/res/com.example" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.example.TextViewPlus android:id="@+id/textViewPlus1" android:layout_height="match_parent" android:layout_width="match_parent" android:text="@string/showingOffTheNewTypeface" foo:customFont="saxmono.ttf"> </com.example.TextViewPlus> </LinearLayout> 

你会把“saxmono.ttf”放在assets文件夹中。

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="CodeFont" parent="@android:style/TextAppearance.Medium"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textColor">#00FF00</item> <item name="android:typeface">monospace</item> </style> </resources> 

我创build了一个关于这个小教程…我希望它可以是有用的http://spinettaro.blogspot.it/2013/01/custom-font-for-view.html

是的你可以 :)

第1步:创build一个文件夹,并将其命名为“font”和你的.ttf。 在这里input图像说明

第2步:转到style.xml并执行以下操作: – 在这里input图像说明

第3步:在任何UI对象中使用样式标记: –

在这里input图像说明

请参阅文档中的APIDemos示例。