我的项目要求在纵向和横向模式下以平板电脑的右窗格显示图像。图像存储在SD卡中。此外,还会在手机和平板电脑中显示闪屏。目前它有6个闪屏,两种模式都支持mdpi,hdpi和& xhdpi。同样的平板电脑。 6为右窗格图像共18张图像。它使内容过于沉重。从SD卡创建位图有时会抛出异常的内存creatbitmap,创建可绘制的方法。我们无法为所有尺寸缩放单个高分辨率图像。一个用于肖像的高分辨率闪屏图像,1个用于横向,1 + 1用于平板电脑,1 + 1用于右侧窗格而不会丢失质量。请帮忙。可能吗 ??
答案 0 :(得分:0)
我认为拥有不同分辨率图像的整个想法是让应用程序在所有设备上顺畅运行。如果您手动开始扩展每个事件,顺便说一下这是一个昂贵的过程,它可能会激怒用户,因为它可能需要一些设备上的时间。
无论如何,如果你想通过下采样图像而没有得到OutOfMemoryError,你仍然可以缩放它。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4; // Better to keep it in power of 2 (as told in docs)
Bitmap bitmapScaled = BitmapFactory.decodeStream(inputStream, null, options);
更改分辨率
Bitmap.createScaledBitmap(sourceBitmap, width, height, isFilterNeeded);
虽然我强烈建议您阅读How to Resize And Rotate Image 还有Loading Large Bitmaps Efficiently。