如何使用“DP”来判断屏幕分辨率?

15

我目前正在开发一款基于Galaxy S的应用程序。我知道Galaxy S的屏幕宽度为480像素,高度为800像素,但这在DP中是多少呢?

假设我想要让两个布局并排放置,那么我将把它们设置为240像素。但是我如何知道我在DP单位中应该使用什么值?

2个回答

14
将dip单位转换为屏幕像素很简单:像素= dips * (density / 160)。例如,在240dpi屏幕上,1 dip等于1.5个物理像素。强烈建议使用dip单位来定义您的应用程序界面,以确保在不同屏幕上正确显示您的界面。
参考链接:http://developer.android.com/guide/practices/screens_support.html [编辑] 我刚刚用过这个。使用DisplayMetrics.density仅返回0.75、1和1.5。请改用DisplayMetrics.densityDpi或更改数学公式为pixels = dips * DisplayMetrics.density

我怎么会错过那个!非常感谢 :) - RobGThai

0
我发现的是,DP与分辨率无关,而是与屏幕尺寸有关,因为它基于160dpi基线。一个简单的计算方法是:屏幕尺寸(英寸) * 160。
在你的情况下:
宽度(英寸)= 480像素/(240像素/英寸) = 2英寸 高度(英寸)= 800像素/(240像素/英寸) = 10/3英寸 检查:sqrt(sqr(2) + sqr(10/3)) ~= 4英寸,这是Galaxy S的尺寸。
因此,dp的大小为(2 * 160) x (10/3 * 160) = 320dp x 533.3dp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接