【问题标题】:Android app loading images from /drawables-nodpi/ with scalingAndroid 应用程序从 /drawables-nodpi/ 加载图像并进行缩放
【发布时间】:2010-10-18 20:40:04
【问题描述】:

我最近将我的 Android 项目从 2.1 重新构建为面向 2.2。

在旧项目中,我没有指定目标 SDK(清单中没有包含类似:android:minSdkVersion="8")。这在运行时让我在控制台中出现错误,但一切正常,所以我没有被它愚弄。

新项目现在在清单中使用 android:minSdkVersion="8"。

但现在 /drawable-nodpi/ 文件夹中的可绘制对象正在加载缩放,使它们变得更小并显着改变了所需的视觉效果。

如果我从清单中删除标签,它们会正确加载而不会缩放。

即使像这样加载我的图像:

            BitmapFactory.Options opts = new BitmapFactory.Options();
            opts.inScaled = false;   
            Bitmap bm = BitmapFactory.decodeResource(_resources, resId, opts);

当我在清单中声明最小 SDK 时,它们仍然会被缩放,但如果我删除该标签,它们不会被缩放。

为什么会这样?如何在声明最小 SDK 的同时在不缩放的情况下加载它们?

【问题讨论】:

  • 我正在做与您完全相同的事情,并且我的位图确实是在没有缩放的情况下加载的。我唯一能想到的就是确保在另一个可绘制文件夹中没有同名的位图

标签: android image scale


【解决方案1】:

你试过了吗?

来自Google

如果您打算将图像作为 位流,以便将其转换为 位图,把你的图像放在 res/raw/ 文件夹,它们在哪里 不会被优化。

【讨论】:

  • 根据我对文档的理解,如果我关心由 aapt 工具完成的图像的编译时优化(例如,将调色板从 256 减少到 128),这将很有用。情况并非如此——我的图像在运行时被加载和缩放,忽略了 BitmapFactory.Options inScaled 设置和 /drawable-nodpi/ 文件夹位置,这是一个单独的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
相关资源
最近更新 更多