我正在开发Android Widget,需要区分 Galaxy S 和 Galaxy S2 。 我几乎阅读了有关屏幕尺寸和密度文章的所有内容。 当然,我需要使用新的限定符和新的限定符最小宽度。 我的问题是,sw320dp限定符匹配Galaxy S和Galaxy S2。 但是我需要Galaxy S2的另一种布局,但是找不到合适的限定符。
Galaxy S,密度233
的定义屏幕尺寸(以像素为单位):480像素x 800像素
屏幕尺寸dp:329dp x 549dp(原因1dp = 1pixel /(密度/ 160)
- >所以限定符 sw320dp 必须符合此处。是的,它确实
Galaxy S II,密度218的定义
屏幕尺寸(以像素为单位):480像素x 800像素
屏幕尺寸dp:352dp x 587dp(原因1dp = 1pixel /(密度/ 160)
- >所以限定词 sw340dp 必须在这里匹配,但是不,它不是
(在模拟器和真实设备上测试)
drawables不是问题,但我的布局,特别是高度和文字大小在这些设备上是不同的,所以我真的需要一个特定的布局。
任何人都有想法或更多经验吗?
答案 0 :(得分:5)
参考材料定义的屏幕密度为:
屏幕物理区域内的像素数量;通常称为dpi(每英寸点数)。例如,与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域内具有更少的像素。 为简单起见,Android将所有实际屏幕密度分为四种通用密度:低,中,高和超高。
低= 120dpi med = 160dpi 高= 240dpi xhi = 320dpi
因此,真实密度为218的Galaxy SII在dp计算中被分配了240“em”的“高”密度。因此,dp中屏幕的宽度为480/240 * 160 = 320。
这很糟糕,我同意。但它是如何运作的。
http://developer.android.com/guide/practices/screens_support.html