[Android]屏幕自適應佈局

http://www.eoeandroid.com/thread-157865-1-1.html


res目錄下的文件夾有什麼用?
我們可以看到在res目錄下有drawable-hdpi, drawable-mdpi, drawable-ldpi, drawable-xhdpi目錄。這些目錄是用來存放圖片的。舉例來說,高精度的圖片應該放在drawable-hdpi目錄下。
For example, bitmaps for high-density screens should go in drawable-hdpi/ 
ldpi (low), 
mdpi (medium), 
hdpi (high), 
xhdpi (extra high)
 
在res目錄下的文件說明:
res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
 
res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density
 
如果要支持橫屏和豎屏,應該怎麼辦呢?有些手機豎屏的時候佈局很漂亮,橫屏的時候圖片就被拉長了。這時候我們就需要準備兩套圖片。一套是橫屏的時候用,一套是豎屏的時候用。

 
橫豎屏圖片如何自適應?
首先在res目錄下建立兩個新目錄。一個爲drawable-port,用來存放豎屏的時候顯示的圖片。另外一個爲drawable-land,用來存放橫屏的時候顯示的圖片。
兩個目錄裏的文件名保存一致,就可以了。橫屏的時候自動用drawable-land裏的圖片,豎屏的時候自動用drawable-port裏的圖片了。

如何適應各種不同的分辨率?
衆所周知,Android機的分辨率非常多。如果需要適應幾種分辨率,就需要自己在res目錄下建立多個drawable文件夾。如要適應480*640的分辨率,就建立一個目錄叫drawable-640*480。如要適應800*600的,就建目錄drawable-800*600.
注意:
      1.較大的數字要寫在前面:比如drawable-854x480而不能寫drawable-480x854.
      2.兩個數字之前是小寫字母x,而不是乘號。

最後還需要在AndroidManifest.xml裏添加下面一段,沒有這一段自適應就不能實現:

</application>

    <supports-screens
android:largeScreens="true"
     android:normalScreens="true"
  android:anyDensity = "true"/>

</manifest>

在</application>標籤和</manifest> 標籤之間添加上面那段代碼。即可。

 

不同分辨率的橫豎屏如何實現?

如果有兩個分辨率,一個是800*480,一個是480*320,都要支持橫豎屏。如何實現呢?即需要四組文件。在res下新建四個目錄。

對應800*480,需要有一套橫着的圖片,一套豎着的圖片。那麼這兩個文件夾名就是

drawable-land-800x480 橫着的

drawable-port-800x480 豎着的

對應480*320,這兩個文件夾就是:

drawable-land-480x320

drawable-port-480x320

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章