【问题标题】:.PNG Images from MipMap Folder Not Scaling on Tablets来自 MipMap 文件夹的 .PNG 图像无法在平板电脑上缩放
【发布时间】:2016-02-10 20:18:45
【问题描述】:

我最近读到,Google 现在允许从 mipmap 文件夹而不是 drawables 中引用常规图像资源。据我了解,mipmap 文件夹以前仅用于图标,但现在能够渲染高质量的图像。

我有一个简历创建应用程序,我的简历示例是 .PNG 文件。我正在尝试确保文件在适当的平板电脑尺寸上正确显示。我已将图像文件分别添加到 mipmap-hdpi、mipmap-mdpi、mipmap-xhdpi、mipmap-xxhdpi 和 mipmap-xxxhdpi 文件夹中。不幸的是,图像在较小的手机和 7 英寸平板电脑上缩放,但我似乎无法在 10 英寸平板电脑上缩放图像。以下是 7 英寸平板电脑和 10 英寸平板电脑的渲染屏幕截图:

7 英寸平板电脑:

10 英寸平板电脑(Google Nexus 10 模拟器):

我还包含了我的文件夹:

【问题讨论】:

  • 如果将 PNG 放在 drawable-* 文件夹中,行为会改变吗?使用 mipmap 文件夹的唯一真正原因是,如果您正在执行资源优化,以去除未使用的屏幕密度的资源。
  • 我实际上已经镜像 mipmap 和 drawable 文件夹以具有相同的图像大小。我的代码中的引用是 mipmap 文件夹,即 R.mipmap.resume_one.png。
  • 为了清楚起见。不同文件夹中的图片大小不一样对吗?
  • 我已修改以包含我的图像文件夹

标签: android android-studio png mipmaps


【解决方案1】:

图像不会自动缩放。你必须告诉他们。

但最好的答案更多是关于屏幕尺寸和像素密度。如果您查看“drawables”文件夹,还有一系列其他文件夹,均以 large、med、small、xlarge 等命名……您应该有每个适当屏幕尺寸的图像。设备会自动选择最适合使用的设备。

这意味着如果您的图片在 1024 像素平板电脑上看起来不错。您应该在 800 像素的较小文件夹中有相同的图像。等等……

【讨论】:

  • 也就是说,特定设备支持不同的图像质量?我想我很困惑为什么 7" 渲染得当而不是 10"。
  • 它们的文件名是否完全相同?
  • 你确定它们都是不同的尺寸吗?
  • 这是只在模拟器上,还是在物理设备上?
  • 在模拟器和设备上都是这样出现的。
【解决方案2】:

在阅读了您与 durbnpoisn 的讨论后,我发现它与我有同样的问题。有时,您的应用无法在可绘制文件夹中获取正确的图像。为此,您可以以编程方式进行。下面是示例代码:

DisplayMetrics metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int widthPixels = metrics.widthPixels;
int heightPixels = metrics.heightPixels;
float widthDpi = metrics.xdpi;
float heightDpi = metrics.ydpi;
float widthInches = widthPixels / widthDpi;
float heightInches = heightPixels / heightDpi;
double diagonalInches = Math.sqrt((widthInches * widthInches) + (heightInches * heightInches)); // this code returns the actual screen size (eg. 7,8,9,10 inches in double format ex: 7.932189832)
diagonalInches = (double) Math.round(diagonalInches * 10) / 10; // round up to first decimal places



if (diagonalInches >= 7 && diagonalInches <=8){
    //set image here
} else {
    //set image here
}

【讨论】:

    猜你喜欢
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    相关资源
    最近更新 更多