【问题标题】:How to set a font for specific textview in Android?如何在 Android 中为特定的 textview 设置字体?
【发布时间】:2018-02-10 07:54:36
【问题描述】:

我按照this 中的步骤操作,它在运行时使我的应用程序崩溃。 下面是我的全部代码。

public class MainActivity extends FragmentActivity {

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

        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        TextView tx = (TextView)findViewById(R.id.textView5);
        Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/myriad_pro_regular.ttf");
        tx.setTypeface(tf);
        setContentView(R.layout.activity_main);
    }
}

当我添加以下代码时

TextView tx = (TextView)findViewById(R.id.textView5);
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/myriad_pro_regular.ttf");
tx.setTypeface(tf);

应用程序崩溃了,我不知道我在这里做错了什么。

【问题讨论】:

  • 请添加日志!
  • 放你的崩溃日志。
  • 尝试使用android studio 3.0+ 他们已经简化了字体和可下载字体的使用

标签: android


【解决方案1】:

您在初始化 textView 后设置了内容视图。这应该是正确的做法:

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

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
TextView tx = (TextView)findViewById(R.id.textView5);
Typeface tf = 
Typeface.createFromAsset(getAssets(),"fonts/myriad_pro_regular.ttf");
tx.setTypeface(tf);

}

【讨论】:

    【解决方案2】:

    首先将你的文本视图初始化放在setContentView下。

    这是工作代码

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_main);
            TextView tx = (TextView)findViewById(R.id.text);
            Typeface tf = Typeface.createFromAsset(getResources().getAssets(),"myriad_pro_regular.ttf");
            tx.setTypeface(tf);
    
        }
    

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多