按维度值自动缩放文本大小

时间:2017-01-08 16:21:43

标签: java android resources dimensions

我有一组维度文件,如:

\ RES \值正常-xxhdpi \ dimens.xtml

<!-- 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)加载此尺寸时,我收到&#34; mid_text_size&#34;等于20.

我确定它是正确的文件,因为将值5更改为其他值将在应用程序中显示更改。

为什么它从5扩展到20?

1 个答案:

答案 0 :(得分:1)

函数Resources.getDimenstion(int)的文档说明:

  

资源维度值乘以适当的指标。

所以可能,如果你检查DisplayMetrics.scaledDensity,它会显示4的值。

请记住,sp是一个相对值,应该保证,在所有屏幕尺寸,尺寸和分辨率上字体看起来都一样。

我建议你阅读units used in Android environment

的理论