自定义字体和XML布局(Android)

自定义字体和XML布局(Android),第1张

自定义字体和XML布局(Android)

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”



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4887423.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-11

发表评论

登录后才能评论

评论列表(0条)

    保存