2014-11-05 118 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