Android 位图太大,无法上载到纹理(通用图像加载器)

Android 位图太大,无法上载到纹理(通用图像加载器),android,bitmap,android-imageview,universal-image-loader,Android,Bitmap,Android Imageview,Universal Image Loader,我以前成功地使用过相同的图像,没有任何问题。这种行为似乎是错误的,至少在我看来是怪异的 UIL版本:GitHub,提交日期:2014年1月28日 Android版本:4.3(Galaxy Nexus) 我的代码和堆栈跟踪: 02-03 00:11:48.343: D/ImageLoader(6701): Start display image task [http://cdn.screenrant.com/wp-content/uploads/A-Stormtrooper-lost-i

我以前成功地使用过相同的图像,没有任何问题。这种行为似乎是错误的,至少在我看来是怪异的

  • UIL版本:GitHub,提交日期:2014年1月28日
  • Android版本:4.3(Galaxy Nexus)
我的代码和堆栈跟踪:

02-03 00:11:48.343: D/ImageLoader(6701):    Start display image task [http://cdn.screenrant.com/wp-content/uploads/A-Stormtrooper-lost-in-the-desert.-2560x1080-Imgur.jpg_720x1184]
02-03 00:11:48.343: D/ImageLoader(6701):    Load image from disc cache [http://cdn.screenrant.com/wp-content/uploads/A-Stormtrooper-lost-in-the-desert.-2560x1080-Imgur.jpg_720x1184]
02-03 00:11:48.398: D/dalvikvm(6701):       GC_FOR_ALLOC freed 922K, 3% free 34681K/35664K, paused 51ms, total 51ms
02-03 00:11:48.476: I/dalvikvm-heap(6701):  Grow heap (frag case) to 49.525MB for 16384016-byte allocation
02-03 00:11:48.507: D/dalvikvm(6701):       GC_FOR_ALLOC freed 1K, 2% free 50679K/51668K, paused 32ms, total 32ms
02-03 00:11:48.875: D/ImageLoader(6701):    Cache image in memory [http://cdn.screenrant.com/wp-content/uploads/A-Stormtrooper-lost-in-the-desert.-2560x1080-Imgur.jpg_720x1184]
02-03 00:11:48.875: D/ImageLoader(6701):    Display image in ImageAware (loaded from DISC_CACHE) [http://cdn.screenrant.com/wp-content/uploads/A-Stormtrooper-lost-in-the-desert.-2560x1080-Imgur.jpg_720x1184]
02-03 00:11:48.882: W/OpenGLRenderer(6701): Bitmap too large to be uploaded into a texture (2560x1600, max=2048x2048)
应用程序:

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).writeDebugLogs().build();
ImageLoader.getInstance().init(config);
片段:

String imageURI= "http://cdn.screenrant.com/wp-content/uploads/A-Stormtrooper-lost-in-the-desert.-2560x1080-Imgur.jpg";
DisplayImageOptions options = new DisplayImageOptions.Builder()
             .cacheInMemory(true)
             .cacheOnDisc(true).build();
ImageLoader.getInstance().displayImage(imageURI, imageView, options);
xml:(这应该是AlertDialog的customTitle):

如果我没有记错的话,此图像已缩小为
720x1184
。如果这是真的,那么它为什么尝试使用原始图像
2560x1600

我想这可能是一个错误,或者我遗漏了什么


如果这不是一个bug,我能做些什么来解决它呢?

当我遇到类似的问题时,我在GitHub上遇到了。问题似乎涉及到centerCrop,它希望在裁剪之前使用比目标更大的图像。我无法解释为什么调试日志使用缩小的图像显示它,但我可以说,在我的例子中,我通过向DisplayImageOptions添加以下内容使它工作:

    .imageScaleType(ImageScaleType.EXACTLY)
GitHub的问题还表明,
FIT\u CENTER
FIT\u XY
FIT\u START
FIT\u END
CENTER\u INSIDE
的scaleType将表现得更好

    .imageScaleType(ImageScaleType.EXACTLY)