按维度值自动缩放文本大小
Automatic text size scaling by dimension's value
我有一组维度文件,例如:
\res\values-normal-xxhdpi\dimens.xml
<!-- Default screen margins, per the Android Design guidelines. -->
<string name="dimention_id">normal-xxhdpi</string>
<dimen name="activity_margin">8dp</dimen>
<dimen name="big_text_size">8sp</dimen>
<dimen name="mid_text_size">5sp</dimen>
<dimen name="small_text_size">3sp</dimen>
<dimen name="logo_size">100dp</dimen>
<dimen name="button_height">55dp</dimen>
<dimen name="button_width">200dp</dimen>
<dimen name="panel_counter_width">190dp</dimen>
当我通过 Context.getResources().getDimension(R.dimen.mid_text_size)
加载此尺寸时,我收到 "mid_text_size" 等于 20。
我确定这是正确的文件,因为将值 5 更改为其他值会在应用程序中出现更改。
为什么它从 5 个扩展到 20 个?
函数 Resources.getDimenstion(int) 的文档指出:
Resource dimension value multiplied by the appropriate metric.
所以很可能,如果您检查 DisplayMetrics.scaledDensity,它会显示值 4。
请记住,sp
是一个相对值,可以确保该字体在所有屏幕尺寸、尺寸和分辨率上看起来都非常相似。
我建议你阅读units used in Android environment
的理论
我有一组维度文件,例如:
\res\values-normal-xxhdpi\dimens.xml
<!-- Default screen margins, per the Android Design guidelines. -->
<string name="dimention_id">normal-xxhdpi</string>
<dimen name="activity_margin">8dp</dimen>
<dimen name="big_text_size">8sp</dimen>
<dimen name="mid_text_size">5sp</dimen>
<dimen name="small_text_size">3sp</dimen>
<dimen name="logo_size">100dp</dimen>
<dimen name="button_height">55dp</dimen>
<dimen name="button_width">200dp</dimen>
<dimen name="panel_counter_width">190dp</dimen>
当我通过 Context.getResources().getDimension(R.dimen.mid_text_size)
加载此尺寸时,我收到 "mid_text_size" 等于 20。
我确定这是正确的文件,因为将值 5 更改为其他值会在应用程序中出现更改。
为什么它从 5 个扩展到 20 个?
函数 Resources.getDimenstion(int) 的文档指出:
Resource dimension value multiplied by the appropriate metric.
所以很可能,如果您检查 DisplayMetrics.scaledDensity,它会显示值 4。
请记住,sp
是一个相对值,可以确保该字体在所有屏幕尺寸、尺寸和分辨率上看起来都非常相似。
我建议你阅读units used in Android environment
的理论