【问题标题】:Strange behaviour when reuse the text size of TextView [duplicate]重用TextView的文本大小时的奇怪行为[重复]
【发布时间】:2016-01-25 18:52:15
【问题描述】:

我想缩放我的textview 字体大小,但是,我无法从非常简单的代码中理解它的行为,因此我无法控制字体大小。

 TextView textView = (TextView)findViewById(R.id.textview2);
 textView.setTextSize(textView.getTextSize());

字体大小应该不会改变,但 textView 改变了它的字体大小,而我使用 getTextSize() 方法中的相同值。谁能解释一下?

【问题讨论】:

    标签: android textview text-size


    【解决方案1】:

    这里的区别在于 setTextSize(int size) 方法中, 单位类型默认为“sp”或“缩放像素”。这个值将是 每个屏幕密度(ldpi、mdpi、hdpi)的不同像素尺寸。

    另一方面,

    getTextSize() 返回实际的像素尺寸 文本。

    它还解释了您的问题。完整的话题链接是here

    如果你想转换它们,那么:

    public static float pixel2Sp(Context context, float px) {
        float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
        return px/scaledDensity;
    }
    
    textView.setTextSize(pixel2Sp(context, textView.getTextSize());
    

    【讨论】:

    • 谢谢。所以我可以用 textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textView.getTextSize()*scale);
    猜你喜欢
    • 2014-02-14
    • 2021-06-24
    • 2013-06-28
    • 2015-07-26
    • 2020-04-26
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多