您好,登錄后才能下訂單哦!
長期以來,適配都是Android開發(fā)人員的通病,Android的開源導(dǎo)致了Android的多樣化,各大手機廠商對Android系統(tǒng)進(jìn)行了深度定制,根據(jù)自己需求,開發(fā)出各種各樣尺寸的手機。這些各種各樣尺寸的手機,無疑給我們這些開發(fā)人員添了很多麻煩,到底怎樣才能做到更好的適配呢,以下是本人適配總結(jié),如果有欠缺或不對的地方,還望指出與海涵。
首先先知道基礎(chǔ)概念
屏幕大小(screen size):屏幕的實際大小,用屏幕對角線長度來衡量。ndroid把屏幕分為以下4種:small(小 屏),normal(正常屏),large(大屏),extra large(特大屏)。
屏幕密度(Screen Density):一塊實際的屏幕區(qū)域有多少個像素,一般用dpi衡量(每英寸有多少個點)。相比 起medium、high屏幕密度的設(shè)備,在一塊確定大小的屏幕區(qū)域l密度為low的屏 幕擁有的像素更少。
方向(orientation):屏幕方向分為landscape(橫屏)和portrait(豎屏)。
分辨率(Resolution) : 屏幕上的總實際像素數(shù)。對屏幕進(jìn)行適配時,一般不關(guān)注它的分辨率,只關(guān)注它的屏 幕大小和密度。
與密度無關(guān)的像素(Density-independent pixel,dp或dip): 為了保證你的UI適合不同的屏幕密度,建議你采 用dp來定義程序UI。
計算方法:
public static int dip2px(Context context, float dipValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dipValue * scale + 0.5f); } public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); }
android把屏幕密度分為4種:low,medium,high,extra high。各dpi代表的密度:ldpi:120 mdpi:160 hdpi:240 xdpi:320 xxdpi:480 你可以根據(jù)下面的方法獲取你手機的密度
DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕寬度(像素) int height = metric.heightPixels; // 屏幕高度(像素) float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240) System.out.println("width:"+width+"\nheight:"+height+"\n屏幕密度:"+density+"\n屏幕密度DPI:"+densityDpi);
2. 具體的適配方法
首先需要在Manifest里面需要設(shè)置支持屏幕類型
<supports-screens android:smallScreens="true" //是否支持小屏 android:normalScreens="true" //是否支持中屏 android:largeScreens="true" //是否支持大屏 android:xlargeScreens="true" //是否支持超大屏 android:anyDensity="true" //是否支持多種不同密度的屏幕 ”/>
1、對應(yīng)用圖標(biāo)的適配:
hdpi 72*72 | ldpi 36*36 | mdpi 48*48 | xdpi 96*96 | xxdpi 120*120
2、對不同屏幕進(jìn)行適配
在res目錄下面創(chuàng)建不同的layout文件夾,例如:layout-large 也可以根據(jù)分辨率創(chuàng)建如layout-480x800 ,然后放響應(yīng)的xml文件即可
可以對不同密度的手機提供不同的圖片(建議使用)因為很多時候如果你做的應(yīng)用,圖片很多的話,一套圖是肯定滿足不了的,因為可能低密度顯示沒問題,但是較高密度手機就會顯示很小
另外界面適配很大一部分也取決于你的布局,要學(xué)會靈活的使用四大布局 盡量多的使用wrap_content match_parent dp ,多分析一下界面的設(shè)計, 有時候能起到事半功倍的作用。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。