【问题标题】:Font wont change, instead it crashes my app on launch字体不会改变,而是在启动时使我的应用程序崩溃
【发布时间】:2018-01-06 14:14:59
【问题描述】:

我在我创建的资产文件夹中放置了一个字体,并在我的 MainActivity 中实现了以下代码:

public class MainActivity extends AppCompatActivity
            implements NavigationView.OnNavigationItemSelectedListener {

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

        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
//      Code to change Welcome text to 'BankGothic Bold' font
        Typeface myTypeface = Typeface.createFromAsset(getAssets(), "BankGothic Bold.ttf");
        TextView myTextview = (TextView)findViewById(R.id.WelcomeTextView);
        myTextview.setTypeface(myTypeface);

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
//      Code to display Home Fragment on App Launch Page
        HomeFragment homeFragment = new HomeFragment();
        FragmentManager manager = getSupportFragmentManager();
        manager.beginTransaction().replace(
                R.id.relativelayout_for_fragment,
                homeFragment,
                homeFragment.getTag()
        ).commit();
    }

我也在 XML 文件中创建了 ID,所以没问题。

如果我包含此代码,我的应用会在启动时崩溃:

//      Code to change Welcome text to 'BankGothic Bold' font
        Typeface myTypeface = Typeface.createFromAsset(getAssets(), "BankGothic Bold.ttf");
        TextView myTextview = (TextView)findViewById(R.id.WelcomeTextView);
        myTextview.setTypeface(myTypeface);

如果我删除它,我的应用程序可以正常使用标准字体。有谁知道为什么?

感谢您的宝贵时间。

【问题讨论】:

  • 将字体文件的名称更改为不带空格且全部小写的名称,然后在代码中使用此名称。
  • 尝试使用“bankgothic.ttf”,但遗憾的是没有用。不过感谢您的建议。
  • 您可以在运行应用程序并崩溃时发布logcat 错误吗?
  • 啊,是的,我没想到看那个。请给我一点时间
  • java.lang.NullPointerException: 尝试在空对象引用上调用虚拟方法 'void android.widget.TextView.setTypeface(android.graphics.Typeface)'

标签: java android android-studio fonts


【解决方案1】:

检查WelcomeTextView是否在activity_main.xml中

在另一个 xml 布局文件中有 WelcomeTextView 吗?

要更改字体,您应该使用 Calligraphy 或创建自定义 TextView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2019-11-05
    • 2016-09-02
    相关资源
    最近更新 更多