android - 为整个 Activity 设置字体设置

标签 android android-fragments android-activity textview android-fonts

在 android 中,如何一次为整个 ActivityFragment 设置字体颜色和字体样式,这样我就不必为每个设置了和每个 TextView ?

最佳答案

这是我的自定义 TextView 类,

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

public class CustomTextView extends TextView {

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomTextView(Context context) {
        super(context);
        init();
    }

    public void init() {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
                "fonts/Montserrat-Regular.ttf");
setTextAppearance(getContext(), android.R.style.headerText); //Here is the code for adding textview style.
        setTypeface(tf, 1);

    }

}

在 xml 中,我使用了我的自定义 textview 而不是默认的 Textview,

<com.sample.android.utils.CustomTextView
                    android:id="@+id/login_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="92dp"
                    android:clickable="true"
                    android:text="Log In"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="@color/login_page_text_normal"
                    android:textStyle="bold" />

或者你只需​​要设置textstyle的意思,在你的styles.xml中加入这段代码,

<style name="headerText">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#ffffff</item>
        <item name="android:gravity">center</item>
        <item name="android:textSize">8.39pt</item>
        <item name="android:textStyle">bold</item>
        <item name="android:shadowColor">#000000</item>
        <item name="android:shadowDx">1</item>
        <item name="android:shadowDy">1</item>
        <item name="android:shadowRadius">1</item>
        <item name="android:adjustViewBounds">true</item>
        <item name="android:singleLine">true</item>
    </style>

然后在你的 xml 布局中添加这个

<TextView
        android:id="@+id/header_text"
        style="@style/headerText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

关于android - 为整个 Activity 设置字体设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20346123/

相关文章:

java - 主线程被挂起并且运行时异常

android - 以编程方式动态地将 View 添加到 FragmentActivity

android - 如何在同一个 tabAdapter 中传递两个不同的 ID?

android - "Content has view with id attribute ' android.r.id.list ' that is not a ListView Class."在 fragment 中创建 ListView 时

android-wear\x86\devices.xml cvc-complex-type.2.4.d : Invalid content was found 'd:skin' . 此时预计没有子元素

java - 单击按钮时如何销毁 Activity ?

android - 使用 React Native FS 将文件写入 Android 外部存储

java - json 解析新手 - 如何获取数组中的数组

Android onResume 和 onCreate

android - 如何知道我的应用程序是在前台还是后台,android?