【发布时间】:2019-08-25 20:40:17
【问题描述】:
我遇到了一个奇怪的位图问题,我在我的应用程序中本地保存了一些高度太大的图像,我在支持缩放和平移的imageview 中显示图像。我正在做的是使用通用图像加载器获取图像的位图,然后将该位图加载到imageview 中。现在,如果我在不使用缩放图像的情况下显示位图:
DisplayImageOptions opts = new
DisplayImageOptions.Builder().imageScaleType(ImageScaleType.NONE).build();
bitmap = ImageLoader.getInstance().loadImageSync(uri.toString(), opts);
然后imageview 中没有显示任何内容,但我在logcat 中收到错误:
W/OpenGLRenderer:位图太大,无法上传到纹理中 (686x7628,最大值=4096x4096)
如果我尝试通过缩放加载图像,则图像质量会被破坏,因为图像仅包含文本,它不可读。
设备截图:
原图:
图像大小为 1.2Mb,只是我不知道如何处理这个问题,因为我尝试将图像质量降低到不可读的格式的所有库,如果我尝试将图像位图直接加载到 imageview 它是不显示。任何帮助表示赞赏。
【问题讨论】:
-
这是相当大的图像,以像素为单位。尝试加载一次
HttpUrlConnection并修改ImageView。 See this 。还有一些库可用于加载高分辨率位图。您也可以使用WebView加载此图像。 -
WebView的好处是它会自动缓存它。它提供自动滚动。 -
@ADM 我正在使用支持缩放和平移的
imageview,使用webview我认为用户体验会很差
标签: android picasso android-glide android-bitmap universal-image-loader