如果满足特定条件,我想在运行时增加TextView
的字体大小。
我想以密度无关的方式做到这一点。我知道表达式应该像setTextSize(getTextSize() + 3 * factor);
,尽管我不知道如何提出factor
。
任何人都可以启发我吗?
答案 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);