如何根据分辨率和dpi android设置正确的字体大小

时间:2013-08-30 11:46:41

标签: android android-layout

在我的布局中,有3个按钮,使用重量水平均分。 现在我在按钮上设置自定义字体Roboto。

问题是如何根据分辨率和dpi计算字体大小,以便在所有尺寸的Android设备上看起来都合适。

2 个答案:

答案 0 :(得分:2)

选项#1:在sp中指定字体大小,这会考虑密度和用户请求的字体缩放。

选项#2:在dp中指定字体大小,它考虑了密度,但忽略了用户请求的字体缩放。

选项#3:使用the logic from AutoScaleTextView创建AutoScaleButton,更改其字体大小以适应可用空间(即使这意味着每个按钮的字体大小也不同)

选项#4:通过让AutoScaleButton个实例的集合在它们之间协商一个共同的字体大小来扩展选项#3,选择适合所有三个按钮的最小字体,以便字体大小相同(甚至虽然文本可能不会填充三个按钮中的两个,具体取决于字符中的标题长度等。)。

答案 1 :(得分:0)

获取所有dpi的维度变量

<dimen name="detail_photo_size">80sp</dimen>

in values-hdpi,values-ldpi,values-mdpi然后使用如下:

txtballoon_item_title
.setTextSize(getResources().getDimension(R.dimen.detail_photo_size));