關於andorid開發中的一些適配,屏幕適配,版本適配,語言適配.9圖片的使用要求

Android中的適配分爲三方面
一、語言適配(I18N語言國際化)
   MyProject/
     res/
        values/
            strings.xml
        values-es/
            strings.xml
        values-fr/
            strings.xml

  1.在res文件夾下創建不同的values文件後綴爲當前需要適配的語言編碼
  2.不同的values文件夾下文件名稱和文件結構完全相同 唯一不同就是<String>標籤中的內容不同
    需要根據指定的語言編碼設置
  3.當app發佈到設備時 系統會檢測當前的語言設置 如果存在當前設備的語言就加載相應的文件夾中的字符串
  如果沒有進行適配 調用默認的strings.xml文件中的字符串


二、屏幕適配
 屏幕適配分兩方面:屏幕的尺寸 屏幕的密度(分辨率)(其實說到這裏應該簡單的在穿插一些關於dip,dp,sp,px之間的關係這個放到最後說)

有四種廣義的尺寸:小,正常,大, XLARGE
他們的標準尺寸分別爲:
超大屏幕至少960dp x 720dp
大屏幕至少640dp x 480dp
標準屏幕至少470dp x 320dp
小屏幕至少426dp x 320dp


 六種廣義密度:低( LDPI )120 ,中( MDPI )160 ,高(華電國際)240 ,特高( xhdpi )320++
分別爲:
 ldpi (low) ~120dpi
 mdpi (medium) ~160dpi
 hdpi (high) ~240dpi
 xhdpi (extra-high) ~320dpi
 xxhdpi (extra-extra-high) ~480dpi
 xxxhdpi (extra-extra-extra-high) ~640dpi

 屏幕的尺寸(佈局文件)
 MyProject/
     res/
         layout/              # default (portrait)
             main.xml
         layout-land/         # landscape
             main.xml
         layout-large/        # large (portrait)
             main.xml
         layout-large-land/   # large landscape
             main.xml
         layout-sw600dp       #七寸平板以上
             main.xml
  1.根據需求提供多套需要的佈局文件  佈局文件的名稱必須相同 文件的內容可以不同
  2.當app發佈到設備時 系統會檢測設備的屏幕尺寸大小從而決定調用哪個layout下的佈局文件


  屏幕密度(分辨率)
  1.爲app提供多套不同分辨率的圖片
  MyProject/
      res/
          drawable-xhdpi/
              awesomeimage.png
          drawable-hdpi/
              awesomeimage.png
          drawable-mdpi/
              awesomeimage.png
          drawable-ldpi/
              awesomeimage.png

xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
   例如:如果你生成一個200x200的圖像xhdpi設備,就應生成設備相同的資源在150×150的hdpi,
    100×100的MDPI和75x75 Ldpi 。

 2.9patch圖片的使用
   9patch一般來說是以純色圖片作爲背景使用 拉伸時邊緣不會出現鋸齒
   9patch在app最終打包生成apk時比一般的圖片佔空間小
(下邊是製作的位置,如果你使用的是studio的話,這樣也是通用的,不過有更簡單的方式,
打開studio的放置圖片的資源文件,選擇你需要製作成.9的圖片,
右鍵選擇Create 9-patch file,點擊確定,你會發現你的圖片資源文件中的某張圖片,
多了一張.9格式的)
   sdk-tools-draw9patch....


三、平臺適配(版本適配)
1.指定最小和目標的API級別
(這裏建議多使用一些v4,v7,v13..的包,這些都是帶有向下兼容的包,但是不是兼容一些)
2.運行時檢查系統版本
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        //在使用一些新sdk中出現的組件或者是控件時需要判斷當前app所在的設備的sdk
        版本是否已經能夠使用該組件
 }

3.使用的平臺風格和主題




發佈了39 篇原創文章 · 獲贊 14 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章