【问题标题】:Android Samsung S I9000 screen size and density issuesAndroid三星S I9000屏幕尺寸和密度问题
【发布时间】:2012-03-20 17:34:23
【问题描述】:

我在使用三星 S I9000 上的应用时遇到问题。我的应用程序上的按钮比应有的大得多。此外,系统正在选择 res/values-small/ 作为值的来源。总而言之,它就像设备有一个非常小的屏幕,即使它应该是 800x480(我在横向模式下工作)。事实上,我可以通过将 res/values-small/styles.xml 中的值更改为比我已经使用的更小的字体大小来改善这种情况。

显示指标如下:

 density = 2.0
 scaledDensity = 2.0
 densityDpi = 320
 widthPixels = 800
 heightPixels = 480
 xdpi = 320.0
 ydpi = 320.0

谁能解释为什么该设备将我的图形放大这么多并且表现得好像我的显示器非常小?更重要的是,我该如何解决?

我尝试调整我的清单以将 minSdk 和 targetSdk 设置为最近的版本,但这没有效果。删除 values-small/ 会导致应用改用默认值 /,这只会让情况变得更糟。

【问题讨论】:

  • 我不认为有一个值小的文件夹。您也可以使用 values-large 和 values-xlarge。你的安卓操作系统版本是多少?
  • 有一个价值观——小。请参阅efalk.org/SamsungS.tar.gz 获取包含它并在任何小屏幕设备上演示它的源代码,显然三星 S 也是如此。我相信它从 1.6 开始就得到了支持。见developer.android.com/guide/practices/screens_support.html
  • 底线:我确信这是三星 S 中的一个错误——它报告像素密度为 320,而实际上它是 233。这会导致所有图形在它真正应该有的时候放大 2 倍是 1.5 倍。它还会导致屏幕尺寸被计算为 1.5" x 2.5",如果这是真的,这将是一个小屏幕。没有人注意到三星 S 上的图标、菜单等真的很大吗?它们在模拟器上很大。
  • 不要将 PPI 和您的 dpi 混淆。这不一样。如果您的手机返回像素密度为 320,则意味着它的 xhdpi 不会与您的 233 ppi 混淆。
  • 我很困惑; PPI和DPI有什么区别?三星 Galaxy S 的物理尺寸为每英寸 233 像素。屏幕有 4" 对角线。为什么它会报告 320 或者它是一个小屏幕?

标签: android android-layout


【解决方案1】:

始终使用 "sp" 作为字体,其余为 "dp"

将您的图像放在下面的相应文件夹中

假设您在 mdpi 中使用 36x36 图像,您需要使用

drawable-mdpi - 36 x 36
drawable-hdpi - 48 x 48
drawable-xhdpi  72 x 72

3:4:6:8比例

在某些情况下,您可能不希望 Android 预缩放资源。避免预缩放的最简单方法是将资源放在带有 nodpi 配置限定符的资源目录中。

例如:

res/drawable-nodpi/icon.png

例如

您使用的字体大小为 14sp 意味着它将自动更改为 320 DPI 为

14×320÷160 =28

所以现在xhdpi分辨率手机的字体大小是28dp。

【讨论】:

  • 谢谢。我正在使用 sp 字体;我假设它被密度或 scaledDensity 缩放?这些都不能解释为什么系统从 res/values-small 中获取资源。还是因为尽管像素密度很高,但该设备的屏幕却异常小?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多