TextSize适用于不同尺寸的不同设备?

时间:2015-07-27 04:28:25

标签: android textview text-size

如何支持不同屏幕尺寸的不同设备的文字大小?我试着为不同的屏幕提供不同尺寸的xml,但效率不高。

值 值,大 值小 价值观sw600dp 价值观sw720dp 值-sw800dp

2 个答案:

答案 0 :(得分:2)

试试这个库,它可能会对你有所帮助。 CommonTextSize

在你的布局中添加这样的大小android:textSize="@dimen/_15sdp"

答案 1 :(得分:2)

当您拥有值 - 大值 - 小值 - sw600dp values-sw720dp values-sw800dp等文件夹时,您的方法是准确的。但是我认为您缺少更改values/dimens.xml values-large/dimens.xml values-small/dimens.xml values-sw600dp/dimens.xml values-sw720dp/dimens.xml values-sw800dp/dimens.xml中的文本大小维度。

例如,您在values / dimens.xml

中使用了dimens.xml下面的内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">18sp</dimen>
</resources>  

在其他值文件夹中,您需要更改文本大小的值。另外,对于textsize而不是px或dp,请使用sp

请注意values values-large values-small在蜂窝状态后被删除。

您也可以按照其他答案中的建议使用该库。但是,如果您不想使用额外的库,请尝试此操作。

<强>编程

这是一种根据屏幕尺寸将dp的大小转换为大小的方法。

public float convertFromDp(int input) {
final float scale = getResources().getDisplayMetrics().density;
return ((input - 0.5f) / scale);
} 

现在只需以编程方式为textize提供值。

tvTextView1.setTextSize(convertFromDp(24));