【问题标题】:Android: Understanding the DPI and getting it via code?Android:了解 DPI 并通过代码获取它?
【发布时间】:2012-05-28 12:59:10
【问题描述】:

谁能帮忙,我发现很难从心理上(理解它)获得手机的 DPI 并获得代码中的价值 :-)

例如,它声明密度如下(取自 android 文档)

ldpi    Resources for low-density (ldpi) screens (~120dpi).
mdpi    Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi    Resources for high-density (hdpi) screens (~240dpi).
xhdpi   Resources for extra high-density (xhdpi) screens (~320dpi).

但为什么它只显示为 ~240dpi,即。一个值?不应该是(例如)手机(三星 Galaxy S2)是 WVGA (800 x 480) (DPI),符号 ~ 是什么意思?

那么以 800 x 480(三星星系 s2 的 dpi)为例,如何将其转换为上述值之一?

我想知道是否有人可以帮助我在心理上理解这一点。

那以后可以通过code得到Density Size,DPI(包括x和y)吗?

我有点失落

【问题讨论】:

  • 我知道~的意思是aproximitly 一般,所以我猜这是估计的dpi
  • 这意味着像 220dpi(每英寸点数)或 252dpi 这样的值将被视为 hdpi。不同的设备可能有不同的值。例如,HTC Sensation 的显示值为 256dpi,当应用选择资源时,它会从项目的 drawable-hdpi 文件夹中选择它们。
  • 这可能有助于blog.blundell-apps.com/…

标签: android android-layout dpi


【解决方案1】:

但为什么它只显示为 ~240dpi,即。一个值?

你期待什么?

符号~是什么意思?

正如评论者所指出的,这意味着“大约”。实际上,设备制造商通常会根据他们对现实世界应用程序行为的测试来选择他们希望设备所处的密度桶。 一般,他们会选择最接近他们实际屏幕密度的密度桶,但这并不能保证。

那么以 800 x 480(三星星系 s2 的 dpi)为例,如何将其转换为上述值之一?

你没有。分辨率不是密度。我可以有一个 800x480 的显示器,对角线尺寸为 1mm、1cm、1m 或 1km。结果,它们中的每一个都将具有不同的屏幕密度。密度以 dpi = 每英寸“点数” = 每英寸像素数来衡量。

那以后可以通过code得到Density Size,DPI(包括x和y)吗?

是的,来自a DisplayMetrics object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2016-04-04
    • 2016-07-19
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多