如果满足特定条件,我想在运行时增加TextView
的字体大小。如何在Android中以编程方式增加文本大小?
我想以密度独立的方式做到这一点。我知道表达应该像setTextSize(getTextSize() + 3 * factor);
,但我不知道如何拿出factor
。
任何人都可以启发我吗?
如果满足特定条件,我想在运行时增加TextView
的字体大小。如何在Android中以编程方式增加文本大小?
我想以密度独立的方式做到这一点。我知道表达应该像setTextSize(getTextSize() + 3 * factor);
,但我不知道如何拿出factor
。
任何人都可以启发我吗?
获取密度的因素很简单:
float density = context.getResources().getDisplayMetrics().density;
当你看着
setTextSize(浮点大小)
你会看到这种方法。
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);
感谢您的回答,但问题是我不只是设置文本大小。我正在增加它,'getTextSize'以像素为单位返回文本大小。因此我需要一些能够与屏幕密度一起工作的东西。 –
所以你认为'浮体密度= context.getResources()。getDisplayMetrics()。密度; setTextSize(getTextSize()+ 3 * density);'会工作吗? –
100%肯定它会 –