在我的布局中,有3个按钮,使用重量水平均分。 现在我在按钮上设置自定义字体Roboto。
问题是如何根据分辨率和dpi计算字体大小,以便在所有尺寸的Android设备上看起来都合适。
答案 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));