Android開發之螢幕適配

呆萌土撥鼠發表於2017-03-18
  1. 每個開發android都有過因為螢幕適配而感到頭痛,Android手機螢幕型別十分繁多, 大小尺寸,長寬比例都不盡相同,同一個介面在不同解析度的手機上可能出現佈局錯亂,控制元件跑位的現象,所以在這裡我寫一篇關於螢幕適配的做法。
  2. 在這裡宣告我開發Android也沒有多長時間,我就寫一下我自己在專案中螢幕適配的做法,可能有說錯的地方如果發現請各位指點出來,或者各位有更好的方法也請分享我一下在這裡就先謝過各位了.
  3. 下面都是親測都可以做到螢幕適配
    (一)關於佈局
    我們都知道Android的五大布局每種佈局都會有他獨特的特點但是在我們佈局的時候儘量使用RelativeLayout(相對布 局)和LinearLayout(線性佈局)不要使用絕對佈局
    (二)關於單位
    在這裡我先介紹一下Android的幾個常用尺寸單位
    dp:dp也即dip(Density-independent Pixels),是一種與螢幕密度無關的尺寸單位,當螢幕密度是160dpi時,1dp=1px。當執行在高dpi的螢幕上時,dp就會按比例放大,當執行在低dpi的螢幕上時,dp就會被按比例縮小。因此dp是一種簡單的解決view在不同大小螢幕上顯示的問題的解決方案。
    sp:sp(Scale-independent Pixels)和dp是比較相似的,但是它會隨著使用者對系統字型大小的設定進行比例縮放,換句話說,它能夠跟隨使用者系統字型大小變化。所以它更加適合做為字型大小的單位。
    pt:pt(Point)是一個基於螢幕大小的物理尺寸,1pt等於1/72英寸(inch)。(不常用)
    px:px(Pixels)相當於實際螢幕的畫素,由於不同螢幕的畫素數差異比較大,因此這個單位不被推薦用於尺寸單位
    所以佈局中儘量使用dp為單位字型大小盡量使用sp為單位
    如果真的要使用px為單位可以在Values資料夾下穿件不同螢幕的lay_y資料夾或者lay_x資料夾這些資料夾就會有不同螢幕所代表的px這些是以1280*720為標準
    這裡寫圖片描述
    這裡就是使用px時資料夾的建立方法關於xml可以在網上搜一下
    (三)自適應螢幕大小
    AndroidManifest.xml檔案的元素如下新增子元素
    android:anyDensity=”true”,系統會依據螢幕密度,自動去找對應的資料夾
    就是根據不同螢幕密度尋找相應的xml資料夾
    AndroidManifest.xml中的程式碼
    這裡寫圖片描述

然後在layout中建立幾個不同螢幕大小的資料夾
layout-small(螢幕尺寸小於3英寸左右的佈局)
layout-normal(螢幕尺寸小於4.5英寸左右)
layout-large(4英寸-7英寸之間)
layout-xlarge(7-10英寸之間)
將自己需要適配的佈局檔案複製到上面四個layout中即可
(四)圖片適配

  • 圖片資料夾
    480*800切下來的圖我們放在drawable-hdpi目錄下
    按照2:3放大的圖示放在drawable-xhdpi目錄
    按照2:3放大的圖示放在drawable-xhdpi目錄
    按照2倍放大的圖示放在drawable-xxhdpi目錄下。
    android會根據手機的密度優先查詢對應的目錄的資源
    有些圖片可以在drawable-hdpi,drawable-xhdpi,drawable-xxhdpi資料夾下都放一張圖片
  • 點九圖片的使用
  • 如果是純色背景,儘量使用android的shape 自定義
    黑色加粗為重點

這裡我總結一下
一、儘量使用RelativeLayout(相對布 局)和LinearLayout(線性佈局)不要使用絕對佈局
二、佈局中儘量使用dp為單位字型大小盡量使用sp為單位
三、把需要適配的佈局放到自己建立的不同螢幕大小的layout檔案中
四、圖片純色儘量背景儘量使用

相關文章