如何支持不同屏幕尺寸的不同设备的文字大小?我试着为不同的屏幕提供不同尺寸的xml,但效率不高。
值 值,大 值小 价值观sw600dp 价值观sw720dp 值-sw800dp
答案 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));