2013-03-21 73 views
0

我試圖編寫簡單的應用程序,我可以在照片之間滑動(如每個設備上的標準圖庫應用程序)。標準的顯示器具有令人印象深刻的性能 - 即時顯示下一張照片,而只需要15 MB的內存。它似乎將內存中的下一張和前一張圖像保存起來,因此從sd卡中加載它們不會有延遲。我認爲如果應用程序在內存中保留至少3 Bitmap這樣大小的對象,則它將花費超過15 MB。那麼它是如何工作的?不要使用Bitmap還是什麼?謝謝。標準圖片庫應用程序

回答

1

請記住,屏幕上的位圖可能不是原始文件的大小。

以720p屏幕爲例,4096 * 3072圖片將被解碼並重新調整大小以適應屏幕大小。

即使APP可能使用ARGB8888格式來顯示位圖,內存大小爲1280 * 720 * 4 = 3686400字節,即大約3.5M。

如果我們使用RGB565格式,那麼尺寸會小一半。

更重要的是,並非所有的圖片都是'全屏'。

+0

謝謝你的回覆。是的它是有道理的,但你可以很容易地放大圖像,所以應用程序應該保持原來的大小,不是嗎? – user1049280 2013-03-21 10:26:34

+0

外部存儲器上的映像處於其原始大小。但要將圖像解碼爲bmp格式並將其保存在內存中不應使用巨大尺寸。 4096 * 3072圖片可能需要長達50M字節!在移動設備上這是不合理的。 – Robin 2013-03-22 04:43:46

+0

是的,但是當圖像被最大程度縮放時,我可以移動它,它非常大,它看起來像真的有8M像素,應用程序只需要15 MB的內存像縮放之前一樣。它是一些設備低級特殊技巧,我無法訪問? – user1049280 2013-03-22 08:03:14

相關問題