2014-11-05 116 views
0

我想实现一个简单的全屏图库图像预览,其中将包括通过捏和拖动功能进行缩放。为ImageView无需预先调整大小(如图库)加载大图像

基本的东西很简单:在由setScaleX(/ Y)和setScrollX(/ Y)控制的framelayout内的imageview。

当我尝试加载比OpenGL max纹理大小更大的图像时(我的情况为4096x4096),麻烦就开始了。我得到以下错误Bitmap too large to be uploaded into a texture,这是有道理的。

其他图像查看器如何打开并显示大图像?有一个技巧或魔法吗?

我正在考虑将一幅大图像划分为裁剪图像(例如5x5)的网格并对其进行平铺,但它似乎不是一个健康的解决方案。可能是BitmapRegionDecoder的明智用法会是答案吗?

你能建议如何解决这个问题吗?

+1

我想平铺可能是唯一的解决办法 – 2014-11-05 15:56:16

+0

任何想法,它是如何在照片浏览器的应用程序呢? – Mark 2014-11-05 16:13:33

+0

多页纹理=多纹理,就是这样! – 2014-11-05 16:26:26

回答

1

我的图书馆SubsamplingScaleImageView专为图库和显示其他大型图像(如建筑图)而设计。它会自动平铺大于最大纹理尺寸的图像,并对图像进行二次采样以避免加载太多数据。尝试示例应用程序以查看它是否满足您的需求。

https://github.com/davemorrissey/subsampling-scale-image-view