java - Android中制作一个public类型的人脸方法

标签 java android public-method

我正在尝试在不同的 Activities 中应用自定义字体,现在我在 onCreate() 中有以下代码在我的 MainActivity :

String fontTitle = "fonts/OpenSans-Bold.ttf";
Typeface titleFont = Typeface.createFromAsset(getAssets(), fontTitle);
page_title.setTypeface(titleFont);

我想知道是否可以制作 Typeface public 这样我就可以在其他 Activity 中访问它。

我创建了一个名为 FontHelper 的类:

public class FontHelper extends MainActivity {

    // path for the fonts
    String fontTitle = "fonts/OpenSans-Bold.ttf";

    Typeface titleFont = Typeface.createFromAsset(getAssets(), fontTitle);

}

但在其他Activities当我使用 textView.setTypeface(FontHelper.titleFont)我得到一个错误。我该如何解决这个错误?

最佳答案

您可以使用静态工厂方法为每个 Activity 创建您的 Typeface 实例,如下所示:

public class FontHelper {

    private static final String FONT_PATH = "fonts/OpenSans-Bold.ttf";

    public static Typeface getCustomTypeFace(Context context) {
        return Typeface.createFromAsset(context.getAssets(), FONT_PATH);
    }
}

你可以这样使用它:

public class ExampleActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final Typeface typeface = FontHelper.getCustomTypeFace(this);
        ...
    }
}

关于java - Android中制作一个public类型的人脸方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37017471/

相关文章:

java - 为什么接口(interface)中只允许使用公共(public)方法?

intellij-idea - 禁用类的公共(public)方法的 "not used"警告

java - 基于 MATLAB 的 Java 程序

java - 模拟 Java 枚举以添加一个值来测试失败案例

android - 多种可能条件 Realm 查询

android - 如何为多平台创建 Storybook 应用程序

java - 无法在 Firebase Android 中检索 CurrentUser 的数据

java 从数组中插入/更新表中的单个列

android - 恢复具有相同 ID 的两个 View 的 fragment

c# - Java2C#翻译: public methods in Interfaces in C#