如何在Android中以编程方式增加文本大小?

时间:2015-05-21 13:02:46

标签: android

如果满足特定条件,我想在运行时增加TextView的字体大小。

我想以密度无关的方式做到这一点。我知道表达式应该像setTextSize(getTextSize() + 3 * factor);,尽管我不知道如何提出factor

任何人都可以启发我吗?

2 个答案:

答案 0 :(得分:1)

获得密度因子非常简单:

float density = context.getResources().getDisplayMetrics().density;

答案 1 :(得分:0)

当你研究

  

setTextSize(float size)

你会看到这种方法。

public void setTextSize(float size) {
    setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}

这意味着TextSize会根据当前密度和字体首选项进行调整。

或者您可以设置自己的setTextSize,如

值是原始像素

setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

值是设备无关

setTextSize(TypedValue.COMPLEX_UNIT_DIP, size);

值是缩放像素

setTextSize(TypedValue.COMPLEX_UNIT_SP, size);

价值以分为单位

setTextSize(TypedValue.COMPLEX_UNIT_PT, size);

值以英寸为单位

setTextSize(TypedValue.COMPLEX_UNIT_IN, size);

值以毫米为单位

setTextSize(TypedValue.COMPLEX_UNIT_MM, size);