Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 安卓-屏幕適配方式

安卓-屏幕適配方式

編輯:關於Android編程

適配:即當前應用在相同的手機上面顯示相同的效果。適配前需要首先確定當前手機所屬像素密度類型(如:xhdpi、hdpi、mdpi等) 像素密度:每英寸上分布的像素點個數,單位(dpi,ppi),利用勾股定理可算出。
vc7EtbWjrM/xy9jD3LbI1vfSqrfWzqo2uPa1yLy2oaM8YnI+CjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20150304/20150304093721102.png" alt="\">

暫時不考慮xxxhdpi的情況,上圖翻譯成中文,大概就是這個意思:
ldpi:120dpi,dp與像素轉換關系為:1dp = 0.75px mdpi:160dpi,dp與像素轉換關系為:1dp = 1px hdpi:240dpi,dp與像素轉換關系為:1dp = 1.5px xhdpi:320dpi,dp與像素轉換關系為:1dp = 2px xxhdpi:480dpi,dp與像素轉換關系為:1dp = 3px
接下來,簡單介紹下現在市面上常用的五種適配方式

1、圖片適配

2、dimens適配

3、布局文件適配

4、java代碼適配

5、權重適配


適配方式一:圖片適配

不同像素密度的手機加載工程資源文件(res)中不同的資源圖片

\

例如:mi3手機,主屏尺寸是5英寸,主屏分辨率:1920x1080像素。

根據勾股定理可算出其像素密度:Sqrt(1920^2+ 1080^2)/5 ≈ 441dpi,即mi3的屏幕像素密度約等於441dpi。

根據google官方文檔中對像素密度的劃分,mi3的像素密度最接近xxhdpi,因此,對mi3這款手機做圖片適配的話需要按照xxhdpi單獨切圖。

適配方式二:dimens.xml文件適配

dimens.xml存在於工程資源(res)文件夾中不同values(如:value-1280x720、value-800x480、values-xhdpi)文件夾下,可用於指定控件大小,不同像素密度手機加載不同values文件夾下的dimens.xml文件,通常用dimens適配,需要寫多個文件,去適配市面上主流的機型。

例如:360手機助手使用dimens適配

\


適配方式三:布局文件適配

不同分辨率的手機,加載不同的布局文件以達到適配效果。

創建多個layout(如:layout-1280x720、layout-800x480)文件夾用於存放不同像素密度手機所需布局文件。


適配方式四:java代碼適配

通過android相應api獲取當前手機的寬高像素值,按比例分配屏幕中控件的寬高以達到適配效果。

核心代碼(將這個文本框的寬高設置為屏幕寬高的一半): 

TextView tv = (TextView) findViewById(R.id.tv); 
//獲取封裝當前手機屏幕信息對象,用於存放寬高值
DisplayMetrics metrics = new DisplayMetrics(); 
//給當前屏幕設置寬高 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
//獲取屏幕高度 
int srceenHeight = metrics.heightPixels; 
//獲取屏幕寬度 
int srceenWidth = metrics.widthPixels; 

//寬高各占50%
RelativeLayout.LayoutParamslayoutParams = new RelativeLayout.LayoutParams( (int)(srceenWidth*0.5+0.5),(int)(srceenHeight*0.5+0.5));
tv.setLayoutParams(layoutParams);

適配方式五:權重適配

通過android中線性布局中的屬性(layout_weight權重) 按比例來分配,已達到適配效果。

例如:兩個按鈕平分屏幕的寬度





  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved