在我的布局中,有 3 个按钮使用权重水平等分。现在我在按钮上设置自定义字体 Roboto。
问题是如何根据分辨率和 dpi 计算字体的大小,以便它在所有尺寸的 android 设备上看起来都合适。
在我的布局中,有 3 个按钮使用权重水平等分。现在我在按钮上设置自定义字体 Roboto。
问题是如何根据分辨率和 dpi 计算字体的大小,以便它在所有尺寸的 android 设备上看起来都合适。
选项 #1:在 中指定字体大小sp
,其中考虑了密度和用户请求的字体缩放。
选项 #2:在 中指定字体大小dp
,其中考虑了密度,但忽略了用户请求的字体缩放。
选项#3:使用from 的逻辑AutoScaleTextView
来创建一个AutoScaleButton
更改其字体大小以适应可用空间的逻辑(即使这意味着每个按钮将具有不同的字体大小)
选项#4:扩展选项#3,让一组AutoScaleButton
实例在它们之间协商一个共同的字体大小,选择适合所有三个按钮的最小的那个,以便字体大小相同(即使文本可能不会填充两个三个按钮,具体取决于字符的标题长度等)。
为所有 dpi 取尺寸变量
<dimen name="detail_photo_size">80sp</dimen>
在 values-hdpi,values-ldpi,values-mdpi 中,然后使用如下:
txtballoon_item_title
.setTextSize(getResources().getDimension(R.dimen.detail_photo_size));