我打算在Android中顯示非常大的圖像。
我的第一個解決方案 - 將它們提供爲PDF格式 - 失敗,因爲並非每個手持設備都預裝了pdf查看器,而且我也不想要求用戶安裝一個。在Android中顯示巨大圖像
所以我現在有一個PNG (寬度= 3998px高度= 2827px),我想要顯示。我下載了這張圖片來測試它將如何顯示在畫廊上。這是非常痛苦的。看來這個畫面只會渲染一張圖片,如果我放大,我根本看不懂文字。
所以我寫了一個testActivity,它只是一個嵌入在LinearLayout中的ImageView。我將圖像放入drawable中,並將其設置爲ImageView的圖像源。 Unforunately的應用程序崩潰,立刻,由於「
ERROR/AndroidRuntime(8906): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget"
我沒想到的是一個單獨的影像可VM's memory
太大。我打得有點左右,設置ImageViews
大小3998 & 2827px
,就把圖片到sdCard
並用fileInputStream
手動讀取。
要我很大的驚喜,現在顯示了我的形象,但如果我把我的Nexus S的水平我得到同樣的OutOfMemoryError
以前一樣。
能somewone點我的主要區別在rec之間即通過FileInputStream
的位圖或將其設置爲ImageView's
源。
還有我不能滾動舒服兩個上級scrollViews
我尋找一個簡單的解決方案,在有能力一次顯示ONE large image
到scroll horizontal and vertical
同時能夠放大和縮小。
這裏是我想要顯示
好的解決方案。我現在通過平鋪我的圖像找到了一種更好的方式(通過很多編碼工作)。對於不同的縮放級別,我也有不同質量的相同圖片的3個版本。即使在舊設備上,這也無法解碼1/4原始位圖 –
什麼是** k **在這裏?希望**寬度**和**高度**表示實際圖像尺寸。請澄清一下。 – AnujAroshA
拉斐爾:你不應該(在理論上!)需要不同的分辨率版本 - 檢查'BitmapFactory.Options.inSampleSize'。 – Timmmm