李華明Himi 原創,轉載務必在明顯處註明:
今天一個開發者問到我爲何遊戲開發要刪除項目下的hdpi、mdpi和ldpi文件夾;下面詳細給你們解答一下:css
首先童鞋們若是看過我寫的《【Android遊戲開發二十一】Android os設備謊話分辨率的解決方案!》這一節的話都應該知道Android從1.6和更高,Google爲了方便開發者對於各類分辨率機型的移植而增長了自動適配的功能;html
自動適配的原理很簡單,只要你創建的項目是1.6或者更高都會看到項目下有drawable-hdpi、drawable-mdpi、drawable-ldpi 三個文件夾,這三個文件夾分別放置高清分辨率、中分辨率、低分辨率的資源文件;那麼若是你的項目在高清分辨率上運行的話,系統會默認索引drawable-hdpi文件夾下的資源,其餘雷同;android
那麼既然系統會自動找匹配的文件夾,那麼確定會出現找不到的狀況,好比當前你的應用在高清分辨率運行,假設代碼中加載一張「himi.png」的圖,那麼系統首先會去drawable-hdpi文件夾下去找這張圖,一旦找不到,系統會再到其餘drawable下尋找,再假設你其實把這張「himi.png」放在了drawable-mdpi中,那麼系統會默認把這張圖片放大;反之同樣,若是你在低分辨率中運行加載一張圖片的話,一旦你將圖片放入高清的drawable-dpi中,那麼系統默認縮小這張圖;spa
總結來講:若是你的應用想適配高、中、低分辨率,那麼你須要有3套圖放入對應的文件夾中,這樣系統會智能加載;若是你就不想讓系統智能尋找縮放的話,有兩種方式能夠解決:.net
1.刪除drawable-hdpi、drawable-mdpi、drawable-ldpi三個文件夾,建立一個drawable文件夾便可;code
2.將資源文件放入assets中,由於assets中的資源系統永遠不會爲其生成id,因此不會智能縮放;htm
-------------------下面介紹第二點,如何讓你的遊戲應用高清blog
其實仍是在《【Android遊戲開發二十一】Android os設備謊話分辨率的解決方案!》中介紹過,1.6後android有了智能判斷的緣故,你獲取的屏幕寬高實際上是不許確的,詳情能夠參考【Android遊戲開發二十一】Android os設備謊話分辨率的解決方案!》;那麼這裏要補充一點就是:索引
若是你在AndroidMainFest 中,定義 <uses-sdk android:minSdkVersion="4" /> 就OK了!你會發現你的圖片很清楚,其實也是由於android自動縮放形成的,上面說了,通常獲取的分辨率會不正常(比正確的偏小)那麼一旦你加上這一句以後,你的分辨率就正常了,因此就明顯遊戲質量高了一個檔次。遊戲
這裏再補充一下: 一旦你定義了<uses-sdk android:minSdkVersion="4" />,就是限制1.5SDK的手機沒法安裝你的程序;
OK,繼續忙了,你們嘗試下吧~