我正在为多屏幕设备制作Android应用程序。 我想知道不同密度设备的文本大小比例是多少?
示例:如果mdpi
设备上的文字大小为28秒,那么hdpi
设备上的内容应该是什么?
我制作了values-ldpi
,values-mdpi
,values-hdpi
等,并在每个相应值文件夹的dimens
中定义文字大小,但在所有设备上看起来并不相似。
答案 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所有分辨率