2012-07-15 60 views
1

我想從Android平板電腦應用程序中從互聯網加載一個非常大的圖像。我知道如何加載較小尺寸的樣本,但注意到它妨礙了圖像的分辨率。 android文檔告訴我有關BitmapRegionDecoder的信息,以幫助加載圖像中的圖像,但似乎沒有太多的文檔。 我做這樣的事情: -使用BitmapRegionDecoder加載大圖像

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

我明白,我必須遍歷下面的代碼多次要求通過傳遞不同的矩形,以獲得整個圖像對象

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

但我不明白如何將所有這些位放在一個圖像視圖中的正確位置。任何例子都會非常有幫助

+0

你所想聽起來像你想藐視區域解碼器的目的。你也可以嘗試加載整個巨大的位圖而不是碎片並將它們結合在一起。最終你會以任何一種方式冒出內存不足的錯誤。區域解碼器的重點是從一個巨大的位圖中獲得一個剪輯。一個用例可以是一個地圖視圖,可以用滑動手勢進行平移。您只需計算區域解碼器中當前可見的位圖加載剪輯,並在地圖視圖中顯示該剪輯。你需要做的是事實上加載縮放版本。 – tiguchi 2012-07-15 18:51:10

回答

1

你試圖做的事聽起來像你想藐視區域解碼器的目的。你也可以嘗試加載整個巨大的位圖而不是碎片並將它們結合在一起。最終你會以任何一種方式冒出內存不足的錯誤。區域解碼器的重點是從一個巨大的位圖中獲得一個剪輯。一個用例可以是一個地圖視圖,可以用滑動手勢進行平移。您只需計算區域解碼器中當前可見的位圖加載剪輯,並在地圖視圖中顯示該剪輯。你需要做的是事實上加載縮放版本。

+1

我確實認爲最初的意圖是使用區域解碼器,但只能加載部分內存。然後使用該內存以棋盤格的形式將區域輸出到顯示器。這樣可以在屏幕上查看6000 x 4000 24MP圖像。平鋪樣式有時通過OpenGl完成多個紋理。 – 2013-03-22 20:52:03