Android中屏幕密度和圖片大小的關係分析

轉載請註明出處:http://blog.csdn.net/singwhatiwanna/article/details/19139013

前言

Android中支持許多資源,包括圖片(Bitmap),對應於bitmap的文件夾是drawable,除了drawable,還有drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等,同一張圖片放到上面不一樣的文件夾中是有區別的,好比一張100 * 100像素大小的圖片,分別放在上述各個文件夾中,而後將其設置爲ImageView(假設寬高都是wrap_content)的圖片,那麼這個ImageView的大小是多少呢,或者說圖片的大小是多少呢?本文主要和你們闡述這個問題。固然,還有一個問題,若是在上述各個文件夾中都放置一張相同的圖片(內容相同,尺寸不一樣),那麼系統會選擇加載哪一張圖片呢?這個問題,系統有內部的選擇機制,簡單來講:系統會選擇最接近手機屏幕密度的圖片,因爲這個問題和本文主題關係不是很大,因此暫時不討論此類問題。.net

概念

先介紹一些概念:blog

屏幕密度:單位英寸面積上的像素點數圖片

ldpi:   屏幕密度爲120的手機設備資源

mdpi: 屏幕密度爲160的手機設備(此爲baseline,其餘均以此爲基準,在此設備上,1dp = 1px)
it

hdpi:  屏幕密度爲240的手機設備
map

xhdpi: 屏幕密度爲320的手機設備
im

xxhdpi:屏幕密度爲480的手機設備img

圖片大小以及dp和px關係一覽表


說明:根據上表,咱們應該很容易算出一張圖片在不一樣手機上的寬和高是多少。文件

結論

從上表能夠得出以下結論co

1. 圖片放在drawable中,等同於放在drawable-mdpi中,緣由爲:drawable目錄不具備屏幕密度特性,因此採用基準值,即mdpi

2. 圖片放在某個特定drawable中,好比drawable-hdpi,若是設備的屏幕密度高於當前drawable目錄所表明的密度,則圖片會被放大,不然會被縮小

  放大或縮小比例 = 設備屏幕密度 / drawable目錄所表明的屏幕密度

3. 爲了更全面的適配全部設備,咱們應該提供一套針對主流屏幕密度的圖片(目前爲hdpi或xhdpi),其餘密度經過系統自動縮放獲得圖片

相關文章
相關標籤/搜索