使用BitmapRegionDecoder加载大图像

时间:2012-07-15 18:36:40

标签: android bitmap

我正试图在Android平板电脑应用程序中从互联网加载一个非常大的图像。我知道如何加载较小尺寸的样品但注意到它会妨碍图像的分辨率。 Android文档告诉我有关BitmapRegionDecoder以帮助加载图块中的图像,但似乎没有太多的文档。 我正在做这样的事情: -

BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(inputstream, false);

据我所知,我必须通过传递不同的rect对象来循环遍历下面的代码,以获取整个图像

    region = decoder.decodeRegion(new Rect(0, 0, 50, 50), null);

但是我不明白如何将所有这些位放在一个imageview中的正确位置。任何一个例子都会非常有用

2 个答案:

答案 0 :(得分:1)

你想要做的事情听起来像你想要违反区域解码器的目的。您也可以尝试加载整个巨大的位图而不是碎片并将它们连接在一起。最后,无论哪种方式,都会冒着内存不足的风险。区域解码器的要点只是从一个巨大的位图获取一个剪辑。一个用例可以是可以使用滑动手势平移的地图视图。您将仅使用区域解码器计算位图加载的当前可见剪辑,并在地图视图中显示该剪辑。你需要做的是加载一个缩放版本。

答案 1 :(得分:0)

是的,你可以使用BitmapRegionDecoder来查看基于Tiles的大图像

这个人在这里实现了一个TileBitmapDrawable类,你可以挂钩到你的imageview:

https://github.com/diegocarloslima/ByakuGallery