當 ImageView 的寬高設定都是 wrap_content 時,很自然會想到圖片是以原始大小來顯示在螢幕上的,不過最近才發現這個原始大小的單位不是 pixel,而是 dp
例如以下 ImageView 的寫法
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/my_png">
- </ImageView>
假設圖片的原始大小為 256 * 256 pixels,不要以為在螢幕上就是佔了 256 * 256 pixels 的大小,實際上是佔了 256 * 256 dp 的大小,dp 會隨著不同的 device 而改變。假設圖片放在 res/drawable 資料夾,如果 app 現在跑在 XXHDPI 的手機上,圖片載入後長寬會變為 3 倍,佔用的記憶體會變為 9 倍。
這除了會讓圖片在螢幕上的大小比你預想的大之外,也會讓圖片占用的記憶體大小大大超出你的預期,不可不注意。
Reference:
沒有留言:
張貼留言