gpt4 book ai didi

android - 更改整个 Android 应用程序的字体?

转载 作者:行者123 更新时间:2023-11-29 01:53:04 26 4
gpt4 key购买 nike

有什么方法可以更改整个 Android 应用程序的字体吗?我知道更改每个 TextView 和按钮的字体。我只是想知道是否有更优雅的方法,因为我正在处理的程序有大量的布局文件:(

最佳答案

要在整个应用程序中应用相同的字体效果,您需要创建自己的自定义 TextView 和应用了自定义字体的 Button 类。并在您的布局中将它们用作普通 View 。

public class MinnesotaTextView extends TextView{

public MinnesotaTextView(Context context) {
super(context);
if(!isInEditMode()){
textViewProprties(context);
}
}

public MinnesotaTextView(Context context, AttributeSet attrs){
super(context, attrs);
if(!isInEditMode()){
textViewProprties(context);
}
}

public MinnesotaTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if(!isInEditMode()){
textViewProprties(context);
}
}

private void textViewProprties(Context context){
Typeface tfs = Typeface.createFromAsset(context.getAssets(), "Helvetica.ttf");
setTypeface(tfs);
setMaxLines(4);
}
}

这是按钮:

public class MinnesotaButton extends Button {

public MinnesotaButton(Context context){
super(context);
if(!isInEditMode()){
buttonProprties(context);
}
}

public MinnesotaButton(Context context, AttributeSet attrs){
super(context, attrs);
if(!isInEditMode()){
buttonProprties(context);
}
}

public MinnesotaButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if(!isInEditMode()){
buttonProprties(context);
}
}

private void buttonProprties(Context context){
setPadding(0, 4, 0, 0);
setBackgroundResource(R.drawable.bg_red_btn);
setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
setTextSize(13.0f);

setTextColor(context.getResources().getColor(R.color.white));
Typeface tfs = Typeface.createFromAsset(context.getAssets(), "garreg.ttf");
setTypeface(tfs,1);
}
}

关于android - 更改整个 Android 应用程序的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786015/

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