1

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

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

我知道我必须通过传递不同的 rect 对象来根据需要多次循环下面的代码来获取整个图像

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

但我不明白如何将所有这些位放在一个图像视图中的正确位置。任何例子都会很有帮助

4

2 回答 2

1

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

于 2012-07-15T18:57:32.787 回答
0

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

这个人在这里实现了一个 TileBitmapDrawable 类,您可以将其挂接到您的图像视图:

https://github.com/diegocarloslima/ByakuGallery

于 2015-04-23T10:49:03.583 回答