当我将画笔笔划大小设置为15时,它适合一个屏幕,而在另一个屏幕中它太大或太小,我怎么知道屏幕密度让它设置笔画宽度以适应屏幕密度?
我正在尝试将它用于动态壁纸,服务,而不是应用程序,所以我无法使用获取Windows管理器...
答案 0 :(得分:2)
我正在尝试将它用于动态壁纸,服务,而不是应用程序,所以我无法使用获取Windows管理器...
你的意思是活动。即使是动态壁纸服务仍然被定义为应用程序内部的组件,但无论如何......
最好的方法是将维度放入资源中,让资源框架为您进行数学计算。定义一个如下所示的res/values/dimens.xml
文件:
<resources>
<dimen android:name="strokeWidth">15dp</dimen>
</resources>
然后在Service
内,您可以致电:
Resources res = getResources();
float strokeWidth = res.getDimension(R.dimen.strokeWidth);
由于尺寸以“dp”为单位定义,因此将返回按屏幕密度缩放的值。所以它将是15 @ MDPI,22.5 @ HDPI,依此类推。如果您希望将值更改为getDimensionPixelOffset()
,也可以使用getDimensionPixelSize()
或int
。
答案 1 :(得分:1)
本文可能会对您有所帮助:
http://developer.android.com/guide/practices/screens_support.html
最终,您将不得不针对不同的屏幕密度进行开发。