不同尺寸的不同设备的 TextSize?

TextSize for different device with different size?

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

值 大值 值小 值-sw600dp 值-sw720dp 值-sw800dp

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

在您的布局中添加这样的提及尺寸 android:textSize="@dimen/_15sdp"

当您有值值-大值-小值-sw600dp 值-sw720dp 值-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>  

在其他值文件夹中,您需要更改文本值 size.Also 使用 sp 文本大小而不是 px 或 dp。

请注意values values-large values-small在蜂巢之后被删除了。

您也可以按照其他 answer.However 中的建议使用该库,如果您不想使用额外的库,请试试这个。

以编程方式

这里有一个方法,将dp的大小转换为根据屏幕大小的大小。

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

现在只需以编程方式将值赋予 textsize。

tvTextView1.setTextSize(convertFromDp(24));