我想在我的应用程序中指定我自己的文本大小,但我这样做有一个问题。

当我在设备设置中改变字体大小时,我的应用程序TextView的字体大小也会改变。


当前回答

在android 8中,这个解决方案适合我

在基本活动中添加此代码

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(newBase);
    final Configuration override = new Configuration(newBase.getResources().getConfiguration());
    override.fontScale = 1.0f;
    applyOverrideConfiguration(override);
}

源 https://stackoverflow.com/a/57225687/7985871

其他回答

最简单的方法就是使用如下代码:

android:textSize="32sp"

如果你想了解更多关于textSize属性的信息,你可以查看Android开发者文档。

还要注意,如果在代码中设置了textSize,调用textView.setTextSize(X)将数字(X)解释为SP。COMPLEX_UNIT_DIP, X)在dp中设置值。

我通常在资源文件中改变大小

<resources>
    <dimen name="siez_1">40px</dimen>
    <dimen name="siez_2">50px</dimen>
    <dimen name="siez_3">60px</dimen>

</resources>

在android 8中,这个解决方案适合我

在基本活动中添加此代码

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(newBase);
    final Configuration override = new Configuration(newBase.getResources().getConfiguration());
    override.fontScale = 1.0f;
    applyOverrideConfiguration(override);
}

源 https://stackoverflow.com/a/57225687/7985871

对于kotlin,这对我来说是有效的

priceTextView.textSize = 12f