我希望我的应用程序能够在多种屏幕尺寸上运行,并且我希望我可以将文本尺寸值存储在不同的可绘制文件夹中,以便文本适合屏幕尺寸。或者这个问题有更好的做法吗?
例如:drawable-hdpi << textsize == 50
drawable-mdpi << textsize == 25
drawable-ldpi << textsize == 10
最简单的做法是在dp
(密度独立像素)或sp
(缩放像素)中定义文本大小。
这样做,Android 将使用以下计算自动考虑密度:
因此,假设您将文本定义为12dp
. 它最终会在中等密度设备上为 12 像素,在高密度设备上为 18 像素,依此类推。
与alextsc 注释一样,对于文本大小,最好将其sp
用于您的单元,因为它将考虑到用户对ICS 中添加的字体大小的偏好。在较低版本的 Android 上,sp
简单地等同于dp
.
如果您想要一个相同的外观并且它的比例正确,@wsanville 的答案是正确的,但是如果由于某种原因您想要完全不同的尺寸。例如,您在平板电脑上使用的布局与在手机上使用的布局不同,并且您希望它是 1 上的标题和另一个上的子标题。然后我建议你定义不同的维度文件夹。
- values/dimens.xml
<dimen name="textSize">16sp</dimen>
- values-large/dimens.xml
<dimen name="textSize">32sp</dimen>
- values-xlarge/dimens.xml
<dimen name="textSize">32sp</dimen>
上面的示例可以让您在手机上小看一下,在平板电脑上大看一下。