如何在不调整大小的情况下从流创建Drawable?

Joh*_*nny 11 android

如果我的应用程序的最小目标SDK设置为4,则所有对Drawable.createFromStream的调用都会调整图像大小.

例如,如果源图像宽度为480px且我的应用程序运行的Android设备的密度为1.5,则以下代码返回宽度为320的BitmapDrawable

URL url = new URL("http://www.examples.com/something.png");

Drawable d = Drawable.createFromStream(url.openStream(), "something.png");
Run Code Online (Sandbox Code Playgroud)

是否有方法强制它保持不变或指定比例(ldpi/mdpi/hdpi etC)从InputStream返回图像?

编辑:从下面的解决方案.

Bitmap b = BitmapFactory.decodeStream(inputStream);
b.setDensity(Bitmap.DENSITY_NONE);
Drawable d = new BitmapDrawable(b);
Run Code Online (Sandbox Code Playgroud)

Dmi*_*nko 11

您可以将图像加载为位图.这样它的大小将保持不变.

BitmapFactory.decodeStream(...)
Run Code Online (Sandbox Code Playgroud)

或者你可以尝试BitmapDrawable(InputStream is)构造函数.它已被弃用,但我想它应该可以胜任.