【问题标题】:ANDROID: ImageView for different sizesANDROID:不同尺寸的 ImageView
【发布时间】:2016-08-18 11:06:24
【问题描述】:

我是安卓工作室的新手;所以如果查询是微不足道的,请原谅。我的问题是理解布局。

我的布局和对应的values文件夹如下图所示。我的问题是没有选择正确的布局。例如,对于 Nexus 4(4.7 英寸,768x1280,xhdpi),在横向模式下,将从“布局”文件夹中获取布局。根据我的理解(这可能是完全错误的:))它应该是从 layout-sw720dp-xhdpi 中挑选出来的。请问有什么建议吗?

layout-problem

【问题讨论】:

标签: android android-layout android-studio layout


【解决方案1】:

sw 代表最小宽度。因此,如果设备在纵向模式下的宽度为 320dp,在横向模式下为 720dp,那么您最终设备的最小宽度为 320dp。

尝试使用 layout-w720dp-xhdpi 代替 layout-sw720dp-xhdpi 看看是否有效。

如何以dp计算设备尺寸

  1. Calculate the PPI (Pixel per inch) of the device.

  2. Calculate the dimensions of the device using dp


    地点:
    • = 屏幕宽度(以像素为单位)
    • = 屏幕高度(以像素为单位)
    • = 屏幕对角线像素
    • = 每英寸像素数
    • = 屏幕对角线英寸


编辑:
根据Wikipedia“Nexus 7 (2013) 屏幕现在具有 1920×1200 像素分辨率 (960dp × 600dp)”。所以它的最小宽度是 600dp,这就是你的布局没有被使用的原因。
证明
PPI = (√(19202 + 12002))/7.02 = 322.53
dp 宽度 = (1920*160)/322.53 = 952.47 = 大约 960dp
dp 高度 = (1920*160)/322.53 = 595.29 = 大约 600dp

【讨论】:

  • 谢谢,会试试的。但是请您告诉我您是如何确定 1920x1200 像素 = 960x600dp 的?了解这一点会有所帮助!再次感谢。
  • 哦,为什么我们要x160来计算dp呢? 根据设计指南,“A dp 等于屏幕上的一个物理像素,密度为 160”
  • 太好了。我认为它会起作用,我实际上出于某种原因考虑 dp 与 px 相同
  • Patrick,我突然想到,对于 sw 为 600 的 nexus 7,布局应该从 sw600dp 中提取,不是吗?
  • 我会改写:对于 Nexus 4(768 x 1280,4.7 英寸屏幕),计算结果为:386 x 644 dp。对于横向,最小屏幕宽度为644 dp,即> 600 dp;因此,据我了解,布局应从 sw600dp 中获取。我知道我在某个地方错了,但是请。有人可以帮忙吗? tnx.
猜你喜欢
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
相关资源
最近更新 更多