文本视图返回错误的文本大小

时间:2016-03-07 11:52:38

标签: android textview android-textattributes

我需要获取文本视图的文本大小,以便在用户按下按钮时增加文本大小,这表示它有助于增加文本视图中的文本大小。让我明白到目前为止我做了什么

我有一个文本视图,并通过dimen文件夹设置文本大小

<dimen name="tv_text_fontsize">32sp</dimen>

支持我的文本视图文本大小相应的所有屏幕尺寸我已经做了不同的dimen文件夹并设置文本大小如下

  

float textSize = tvContentString.getTextSize();

对于平板电脑等大型设备来说,它是32秒。

但是当我通过java获得文本视图的大小时,它会返回错误的文本大小。这里看到吼叫何我得到文字大小

SoftwareSerial

但是这会让我的textview文本大小错误。

请建议我,如何在文本视图中显示确切的文字大小。因为我想在按下按钮时增加文本大小所以为此我需要检索文本的实际大小,即如果文本大小为32我想要增加它32 + 1 = 3sp

但是当我检索文本大小时,它是其他一些东西,例如平板电脑,我已经设置了32sp,但它正在检索我42,所以在42 + 1中使其增加43,当我在按钮上按下它的外观尴尬。

请帮忙!!!如何获得真实文本大小。 ??

1 个答案:

答案 0 :(得分:6)

问题是getTextSize()以像素为单位返回大小,而不是以sp为单位。因此,您可以先将像素转换为sp,然后再将其转换为 -

tvContentString.setTextSize(TypedValue.COMPLEX_UNIT_SP, new_size);

要将像素转换为sp,请使用此 -

public static float pixelsToSp(Context context, float px) {
    float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
    return px/scaledDensity;
}

代码取自here

相关问题