如何在Android中通过编程增加文本大小?

如何在Android中通过编程增加文本大小?,android,Android,如果满足特定条件,我想在运行时增加TextView的字体大小 我想用一种与密度无关的方式来做。我知道表达式应该是setTextSize(getTextSize()+3*因子)虽然我不知道如何计算出系数 谁能给我点启发吗?获取密度因子非常简单: float density = context.getResources().getDisplayMetrics().density; 当你调查 setTextSize(浮动大小) 您将看到这个方法 public void setTextSize(flo

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

我想用一种与密度无关的方式来做。我知道表达式应该是
setTextSize(getTextSize()+3*因子)虽然我不知道如何计算出
系数


谁能给我点启发吗?

获取密度因子非常简单:

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);

所以你认为
float density=context.getResources().getDisplayMetrics().density;setTextSize(getTextSize()+3*密度)
会起作用吗?100%肯定会谢谢你的回答,但问题是我不仅仅是设置文本大小。我增加它,然后
getTextSize
返回文本大小(以像素为单位)。因此,我需要的东西,与屏幕密度工程。