2015-12-29 89 views
-1

我开发了一个测试应用程序,以了解android屏幕密度相关的东西。我已在values.xml和strings.xml中具有以下文件夹结构中的相应测试数据:

values \ dimen.xml(100dp)
values-mdpi \ dimen.xml(100dp)
values-hdpi \ dimen。 XML(150dp)
值-xhdpi \ dimen.xml(200dp)
值-xxhdpi \ dimen.xml(300dp)
Android:屏幕密度混乱?

我显示在UI这些数据来知道从哪个文件夹应用程序正在对数据不同的屏幕尺寸和密度。所以,我得到以下结果:
1st device
2nd device

问题是xxhdpi第二设备显示我900dp值,但在价值观xxhdpi \ dimen.xml300dp

+4

你能证明翻译扪到文本代码? – aelimill

+0

是的。 'sb.append(“Test Values:”+ getResources()。getDimension(R.dimen.up_dimen)); sb.append(“Test Text:”+ getResources()。getString(R.string.testing_text));' –

+0

如果你想为测试原因的“原始”值不使用“dp”修饰符,因为它乘以来自DisplayMetrics的屏幕密度。 http://developer.android.com/intl/ru/reference/android/content/res/Resources.html#getDimension(intint) – aelimill

回答

1

900是一个像素值。你一加2具有密度3,这意味着300dp == 900px

0

如果它没有拿起正确的布局使用价值文件夹这样

  • 价值观LDPI
  • 值-mdpi
  • 值-HDPI
  • 值-xhdpi

    页//添加的文件夹

  • 值-w300dp-MDPI

  • 值-w600dp-MDPI

添加的文件夹所需

0

索尼XPERIA j具有245 dpi屏幕和OnePlus 2具有401 dpi屏幕,因此这些值有问题。

密度如下:

  • LDPI(低)〜120DPI
  • MDPI(介质)〜160dpi
  • HDPI(高)〜240dpi
  • xhdpi(超高) 〜320dpi
  • xxhdpi(extra-extra-high)〜480dpi
  • xxxhdpi(extra-extra-extra-high)〜640dpi

enter image description here

所以这是正确的,你的应用程序需要从华电国际的的XperiaĴ图像和xxhdpi目录万普拉斯2.在这里阅读更多:http://developer.android.com/guide/practices/screens_support.html