gpt4 book ai didi

xml - 在 Android 中使用自定义字体

转载 作者:IT老高 更新时间:2023-10-28 13:02:05 26 4
gpt4 key购买 nike

我想为我正在创建的 Android 应用程序使用自定义字体。
我可以从 Code 中单独更改每个对象的字体,但我有数百个。

所以,

  • 有没有办法从 XML 中做到这一点? [设置自定义字体]
  • 有没有办法在一个地方从代码中做到这一点,也就是说整个应用程序和所有组件都应该使用自定义字体而不是默认字体?

最佳答案

是的,有可能。

您必须创建一个扩展 TextView 的自定义 View 。

values 文件夹中的 attrs.xml 中:

<resources>
<declare-styleable name="MyTextView">
<attr name="first_name" format="string"/>
<attr name="last_name" format="string"/>
<attr name="ttf_name" format="string"/>
</declare-styleable>
</resources>

main.xml中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:lht="http://schemas.android.com/apk/res/com.lht"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello"/>
<com.lht.ui.MyTextView
android:id="@+id/MyTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello friends"
lht:ttf_name="ITCBLKAD.TTF"
/>
</LinearLayout>

MyTextView.java:

package com.lht.ui;

import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;

public class MyTextView extends TextView {

Context context;
String ttfName;

String TAG = getClass().getName();

public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;

for (int i = 0; i < attrs.getAttributeCount(); i++) {
Log.i(TAG, attrs.getAttributeName(i));
/*
* Read value of custom attributes
*/

this.ttfName = attrs.getAttributeValue(
"http://schemas.android.com/apk/res/com.lht", "ttf_name");
Log.i(TAG, "firstText " + firstText);
// Log.i(TAG, "lastText "+ lastText);

init();
}

}

private void init() {
Typeface font = Typeface.createFromAsset(context.getAssets(), ttfName);
setTypeface(font);
}

@Override
public void setTypeface(Typeface tf) {

// TODO Auto-generated method stub
super.setTypeface(tf);
}

}

关于xml - 在 Android 中使用自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com