【问题标题】:Android drawable for Samsung Galaxy S4 and Nexus 10适用于三星 Galaxy S4 和 Nexus 10 的 Android drawable
【发布时间】:2013-09-25 00:59:26
【问题描述】:

我有一张图片是我的应用中一项活动的背景。

对于三星 Galaxy S4,此图像应为 1920x1080 并放置在 xxhdpi 文件夹中。 对于 Nexus 10,此图像应为 2560x1600 并放置在 xhdpi 文件夹中。

在 xhpdi 文件夹中放置的图像比放置在 xxhdpi 文件夹中的图像大是无稽之谈。 因为我相信我误解了一些东西。

谁能解释我误解了什么?

--编辑--

对于所有关于 nexus10 是否真的是 xhdpi 和 S4 xxhdpi 的问题的答案:

prijupaul 的答案很好,但我没有任何 Nexus 10 或 Galaxy S4 可以测试。我发现解决方案试图为两者创建 AVD,在设备配置创建中它说明了它将是什么配置。

【问题讨论】:

  • 您打算使用哪种图像作为背景。某物、图案、渐变的图片?

标签: android android-layout android-drawable


【解决方案1】:

资源类“hdpi”、“xhdpi”和“xxhdpi”与分辨率(普通像素的宽度和高度)无关,但与密度(每英寸屏幕的像素数)有关。

S4 具有较低的分辨率,但可以具有更高的密度,因为它的屏幕更小。

我认为文档 (developer.android.com) 对此进行了很好的解释。检查以获取更多详细信息。

【讨论】:

    【解决方案2】:

    如果分辨率确实很重要,那么您应该使用除 xhdpi 之外的另一个限定符。您可以使用例如 drawable-sw720dp(针对 10" 平板电脑)。

    不过,我个人的意见是,您应该为每个宽高比设置一个最大尺寸的版本。然后在运行时计算该纵横比并从资产中挑选最佳图像。

    【讨论】:

      【解决方案3】:

      S4 不是 xhdpi 吗?您是否使用过验证

      DisplayMetrics dm = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(dm);
      int density = dm.densityDpi;
      switch(density)
      {
       case DisplayMetrics.DENSITY_LOW:
        Toast.makeText(context, "ldpi", Toast.LENGTH_SHORT).show();
        break;
       case DisplayMetrics.DENSITY_MEDIUM:
        Toast.makeText(context, "mdpi", Toast.LENGTH_SHORT).show();
        break;
       case DisplayMetrics.DENSITY_HIGH:
        Toast.makeText(context, "hdpi", Toast.LENGTH_SHORT).show();
        break;
       case DisplayMetrics.DENSITY_XHIGH:
        Toast.makeText(context, "xhdpi", Toast.LENGTH_SHORT).show();
        break;
       case DisplayMetrics.DENSITY_XXHIGH:
        Toast.makeText(context, "xxhdpi", Toast.LENGTH_SHORT).show();
        break;
      }
      

      这并不能回答问题。但是,这可能有助于再次检查它。

      【讨论】:

      • 这是 xxhdpi。我有一个。
      【解决方案4】:

      我认为它即将'PPI'。 Galaxy s4 有 441 ppi,但 Nexus 10 有 300 ppi。

      【讨论】:

      • 是的,我知道,但我无法为 PPI 创建可绘制对象。
      【解决方案5】:

      你确定nexus10的图像应该在xhdpi文件夹中吗? Nexus10有300ppi,和dip不同。 访问Android XXHDPI resources

      应该是这样的, s4:xhdpi nexus10:xxhdpi

      【讨论】:

      • 你发布的问题链接有你问的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多