Android中多密度设备的文本大小比例应该是多少?

时间:2014-01-22 18:05:54

标签: android

我正在为多屏幕设备制作Android应用程序。 我想知道不同密度设备的文本大小比例是多少?

示例:如果mdpi设备上的文字大小为28秒,那么hdpi设备上的内容应该是什么?

我制作了values-ldpivalues-mdpivalues-hdpi等,并在每个相应值文件夹的dimens中定义文字大小,但在所有设备上看起来并不相似。

2 个答案:

答案 0 :(得分:1)

你不需要知道比率,你不应该直接使用它们,因为密度的数量会不断变化。

如果您在资源中使用它,使用sp单位将在每个密度中正常工作,没有不同的值文件夹。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="type1">28sp</dimen>
</resources>

如果你是从代码中进行的,可能会看起来不同,具体取决于你如何设置值。您必须将正确的值发送到setTextSizeFunction,例如:

setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.type1));
//he documentation method that COMPLEX_UNIT_PX returns a Resource dimension value multiplied by the appropriate metric.

或硬编码:

setTextSize(TypedValue.COMPLEX_UNIT_SP, 9);

答案 1 :(得分:0)

在dimens.xml中使用以下公式进行声明

base mdpi = 1X

HDPI = 1.5X

XHDPI = 2.0X

XXHDP = 2.75X

以上公式为关系b / W所有分辨率