前言
介于目前的Android設(shè)備存在有不同的屏幕尺寸芥被,屏幕分辨率,像素密度客冈,Android應(yīng)用在開發(fā)的過程必須要考慮到屏幕尺寸適配的問題丑勤,以保證在不同尺寸的Android設(shè)備上都能夠正常運(yùn)行。
基本概念
在開始說明適配方案之前奖地,我們首先需要對(duì)如下幾個(gè)概念了若指掌:屏幕尺寸橄唬,屏幕分辨率,屏幕像素密度参歹。
1仰楚。 屏幕尺寸
屏幕尺寸是指的設(shè)備對(duì)角線的物理尺寸,常用單位為英寸。
1英寸 = 2.54cm
2. 屏幕分辨率
屏幕分辨率指的是設(shè)備在橫向僧界、縱向上的像素總和侨嘀,常用寬*高的方式來描述。
寬指的是在橫向上的像素點(diǎn)數(shù)捂襟,高是在縱向上的像素點(diǎn)數(shù)咬腕。
如480*600,則表示在橫向上有480個(gè)像素點(diǎn)葬荷,在縱向上有600個(gè)像素點(diǎn)涨共。
3. 屏幕像素密度
屏幕像素密度指的是設(shè)備每英寸的像素點(diǎn)數(shù),單位dpi宠漩。
屏幕尺寸以160個(gè)像素作為基準(zhǔn)举反,假設(shè)設(shè)備的每英寸有160個(gè)像素,則設(shè)備密度為160dpi,為1倍圖適配扒吁。
倍圖對(duì)應(yīng)關(guān)系:
密度類型 | 分辨率 | dpi | dp換算 |
---|---|---|---|
低密度(ldpi) | 240x320 | 120 | 1dp=0.75px |
中密度(mdpi) | 320x480 | 160 | 1dp=1px |
高密度(hdpi) | 480x800 | 240 | 1dp=1.5px |
超高密度(xhdpi) | 720x1280 | 320 | 1dp=2px |
超超高密度(xxhdpi) | 1080x1920 | 480 | 1dp= 3px |
一火鼻、屏幕適配方案
Android常見的UI適配方案主要包括如下幾種:
- 多l(xiāng)ayout適配
- 屏幕分辨率限定符適配
- smallestWidth限定符適配
1. 多l(xiāng)ayout適配
多l(xiāng)ayout適配主要是針對(duì)某個(gè)分辨率,新建一個(gè)layout文件夾瘦陈,名稱為:layout-1024*600
凝危,橫屏layout-land-1024*600
波俄。
這種方法多見于橫屏的特殊適配晨逝,如果橫屏的UI和豎屏的UI差距非常大的情況下,可以為橫屏單獨(dú)設(shè)置布局懦铺。
2. 屏幕分辨率限定符適配
屏幕限定符適配捉貌,是針對(duì)不同屏幕的分辨率創(chuàng)建values-xxx的文件夾,在遇到對(duì)應(yīng)的屏幕分辨率時(shí)就可以找到對(duì)應(yīng)的values文件夾畦攘,查找文件夾下的dimens.xml文件意敛,確定每個(gè)屏幕尺寸下顯示控件的大小旋廷。如下圖:
然后對(duì)每個(gè)values對(duì)應(yīng)的不同屏幕分辨率,生成各種分辨率下面的dimens.xml文件醒陆。
<dimen name="x720">720px</dimen>
需要注意的是采用此種方法,在每個(gè)dimens.xml文件里定義的尺寸大小多為px(像素)裆针,然而我們?cè)趯?shí)際的Android開發(fā)過程中遇到的開發(fā)尺寸多為dp刨摩,因此在實(shí)際的開發(fā)中此種方法使用場(chǎng)景并不是很頻繁。
3. smallestWidth限定符適配
smallestWidth限定符適配原理和屏幕分辨率限定符適配一樣世吨,都是通過創(chuàng)建多個(gè)values文件夾澡刹,系統(tǒng)根據(jù)限定符去尋找對(duì)應(yīng)的dimens.xml文件,以確定不同設(shè)備上的大小展示耘婚,如下圖:
和屏幕分辨率限定符屏幕分辨率限定符適配是拿 px 值等比例縮放不同的是罢浇, smallestWidth 限定符適配是拿 dp 值來等比縮放。
需要注意的是,最小寬度的寬度是不區(qū)分方向的嚷闭,也就是對(duì)于設(shè)備來說無論是寬度還是高度攒岛,哪一邊更小就認(rèn)為哪一邊是“最小寬度”。
代碼中的設(shè)置大小
如果要在代碼中設(shè)置大小凌受,可以使用如下工具類:
public class ScreenSizeUtil {
/**
* 計(jì)算當(dāng)前的SP的值
* @param context
* @param spSize :R.dimen.sp_16
* @return
*/
public static int getSP(Context context,@DimenRes int spSize){
float pxValue = context.getResources().getDimension(spSize);//獲取對(duì)應(yīng)資源文件下的sp值
//將px值轉(zhuǎn)換成sp值
return px2sp(context, pxValue);
}
/**
* 計(jì)算當(dāng)前的DP的值
* @param context
* @param dpSize :R.dimen.dp_16
* @return
*/
public static int getDP(Context context,@DimenRes int dpSize){
float pxValue = context.getResources().getDimension(dpSize);//獲取對(duì)應(yīng)資源文件下的sp值
//將px值轉(zhuǎn)換成sp值
return px2dip(context, pxValue);
}
/**
* 根據(jù)手機(jī)的分辨率從 dp 的單位 轉(zhuǎn)成為 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
if (context == null) {
return (int) dpValue;
}
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根據(jù)手機(jī)的分辨率從 px(像素) 的單位 轉(zhuǎn)成為 dp
*/
public static int px2dip(Context context, float pxValue) {
if (context == null) {
return (int) pxValue;
}
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
/**
* px轉(zhuǎn)換為sp
* @param context
* @param pxValue
* @return
*/
public static int px2sp(Context context,float pxValue){
if (context == null) {
return (int) pxValue;
}
final float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / scale + 0.5f);
}
}
二阵子、smallestWidth限定符適配的優(yōu)勢(shì)
雖然和分辨率限定符適配原理相同,都需要設(shè)置多個(gè)dimens.xml文件胜蛉,但是在實(shí)際的開發(fā)過程中挠进,還是相對(duì)建議使用smallestWidth限定符適配,其具有如下優(yōu)勢(shì):
1. Android設(shè)配屏幕尺寸較多
和IOS設(shè)備不一樣的是誊册,Android設(shè)備有著多種多樣的屏幕分辨率领突,因此如果采用屏幕分辨率來適配的話,則需要非常多的values案怯,如果你沒有適配對(duì)應(yīng)分辨率的設(shè)備君旦,則很有可能導(dǎo)致適配變形。
而實(shí)際上絕大部分的設(shè)備的最小寬度都大于360dp嘲碱,這樣的話smallestWidth限定符適配就不需要進(jìn)行大量適配金砍,而只需要添加少量的dimens.xml文件即可。
2. 適配單位便捷
屏幕分辨率適配的單位是px(像素),而基于Android設(shè)備不同的像素密度麦锯,這個(gè)單位在實(shí)際的開發(fā)中是很少會(huì)用到的恕稠。
smallestWidth限定符適配中的dan'wi單位是dp,對(duì)于文本大小也支持采用sp適配扶欣,在開發(fā)過程中十分便捷鹅巍。
3. 適配寬松
屏幕分辨率限定符適配需要設(shè)備分辨率與 values-xx 文件夾完全匹配才能達(dá)到適配,如果不能完全匹配料祠,則適配有可能無效而導(dǎo)致UI大幅變形骆捧。
而 smallestWidth 限定符適配尋找 dimens.xml 文件的原理是從大往小找,例如設(shè)備的最小寬度為 360dp髓绽,就會(huì)先去找 values-360dp敛苇,發(fā)現(xiàn)沒有則會(huì)向下找 values-320dp,如果還是沒有才找默認(rèn)的 values 下的 demens.xml 文件顺呕,所以即使沒有完全匹配也能達(dá)到不錯(cuò)的適配效果枫攀。
三、smallestWidth限定符適使用
鑒于需要生成多個(gè)dimens.xml文件塘匣,手動(dòng)添加的代價(jià)過于高昂脓豪,而且當(dāng)前已經(jīng)有插件可以自動(dòng)生成,目前推薦使用插件:ScreenMatch忌卤。
1. ScreenMatch插件安裝到Android Studio
和其他插件的安裝一樣扫夜,Android Studio可以通過Plugin Marketplace中查找插件,如下(圖中由于我已經(jīng)安裝成功):
在MarketPlace中找到ScreenMatch點(diǎn)擊安裝即可。
有可能在訪問插件庫時(shí)笤闯,MarketPlace加載不出來堕阔,可能需要魔法上網(wǎng);或者訪問插件庫地址下載插件安裝到本地也可以:https://plugins.jetbrains.com/
本地安裝.jpg
2. dimens文件添加
我們需要添加一分dimens.xml文件作為適配的基準(zhǔn)颗味,文件內(nèi)容主要聲明尺寸超陆,可參考附錄。
3. screenMatch生成values
在插件導(dǎo)入之后浦马,可以在values文件夾右鍵时呀,選擇ScreenMatch選項(xiàng),然后選擇在你添加了dimens.xml文件的module下執(zhí)行晶默,即可生成多個(gè)values文件夾谨娜。
4, 更新配置
在使用了ScreenMatch時(shí)磺陡,在Module層級(jí)的目錄下會(huì)有一個(gè)ScreenMatch配置文件——screenMatch.properties趴梢,在其中可以更新配置,如果要更新需要適配的尺寸币他,可以在如下的代碼中進(jìn)行變動(dòng):
base_dp=600
# Also need to match the phone screen of [match_dp].
# If you have another dp values.
# System default values is 320,360,384,400,432,446.5,480,540,592,600,640,662,720,768,800,820,960,1024,1280,1365
base_dp
是你的基準(zhǔn)尺寸坞靶,可以在System default values
中添加你需要適配的尺寸,然后重新執(zhí)行第三步重新生成values及對(duì)應(yīng)的dimens.xml文件蝴悉。
5. 布局xml文件中的使用
接下來就是在布局xml文件中去使用大小了彰阴,可以采用@dimen/dp_12
類似的方式來獲取大小。
舉例來說辫封,如果要設(shè)計(jì)一個(gè)大小為寬為100dp,高為80dp的按鈕硝枉,文字大小為20sp,可以在布局中這么寫:
<Button
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_80"
android:textSize="@dimen/sp_20"/>
這樣的話廉丽,系統(tǒng)就會(huì)根據(jù)當(dāng)前設(shè)備的寬度dp去對(duì)應(yīng)的dimens.xml文件中查到對(duì)應(yīng)的長度了倦微。
6. 代碼中設(shè)置大小
代碼中的話則需要通過getDimension()
方法獲取對(duì)應(yīng)資源文件下的大小,工具類如下:
public class ScreenSizeUtil {
/**
* 計(jì)算當(dāng)前的SP的值
* @param context
* @param spSize :R.dimen.sp_16
* @return
*/
public static int getSP(Context context,@DimenRes int spSize){
float pxValue = context.getResources().getDimension(spSize);//獲取對(duì)應(yīng)資源文件下的sp值
//將px值轉(zhuǎn)換成sp值
return px2sp(context, pxValue);
}
/**
* 計(jì)算當(dāng)前的DP的值
* @param context
* @param dpSize :R.dimen.dp_16
* @return
*/
public static int getDP(Context context,@DimenRes int dpSize){
float pxValue = context.getResources().getDimension(dpSize);//獲取對(duì)應(yīng)資源文件下的sp值
//將px值轉(zhuǎn)換成sp值
return px2dip(context, pxValue);
}
/**
* 根據(jù)手機(jī)的分辨率從 dp 的單位 轉(zhuǎn)成為 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
if (context == null) {
return (int) dpValue;
}
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根據(jù)手機(jī)的分辨率從 px(像素) 的單位 轉(zhuǎn)成為 dp
*/
public static int px2dip(Context context, float pxValue) {
if (context == null) {
return (int) pxValue;
}
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
/**
* px轉(zhuǎn)換為sp
* @param context
* @param pxValue
* @return
*/
public static int px2sp(Context context,float pxValue){
if (context == null) {
return (int) pxValue;
}
final float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / scale + 0.5f);
}
}
總結(jié)
本文簡述了smallestWidth這一常見的UI適配方法正压,相對(duì)于屏幕尺寸適配和多l(xiāng)ayout適配來說更加常見欣福。
附錄
dimens.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- Your custom size defind by references, can be writted in anywhere, any module, any values/*.xml, for example: -->
<dimen name="common_margin">@dimen/dp_15</dimen>
<!-- dp and sp values, must be defind in this file! -->
<!-- view size,you can add if there is no one -->
<dimen name="dp_m_60">-60dp</dimen>
<dimen name="dp_m_30">-30dp</dimen>
<dimen name="dp_m_20">-20dp</dimen>
<dimen name="dp_m_12">-12dp</dimen>
<dimen name="dp_m_10">-10dp</dimen>
<dimen name="dp_m_8">-8dp</dimen>
<dimen name="dp_m_5">-5dp</dimen>
<dimen name="dp_m_2">-2dp</dimen>
<dimen name="dp_m_1">-1dp</dimen>
<dimen name="dp_0">0dp</dimen>
<dimen name="dp_0_1">0.1dp</dimen>
<dimen name="dp_0_5">0.5dp</dimen>
<dimen name="dp_1">1dp</dimen>
<dimen name="dp_1_5">1.5dp</dimen>
<dimen name="dp_2">2dp</dimen>
<dimen name="dp_2_5">2.5dp</dimen>
<dimen name="dp_3">3dp</dimen>
<dimen name="dp_3_5">3.5dp</dimen>
<dimen name="dp_4">4dp</dimen>
<dimen name="dp_4_5">4.5dp</dimen>
<dimen name="dp_5">5dp</dimen>
<dimen name="dp_6">6dp</dimen>
<dimen name="dp_7">7dp</dimen>
<dimen name="dp_8">8dp</dimen>
<dimen name="dp_9">9dp</dimen>
<dimen name="dp_10">10dp</dimen>
<dimen name="dp_11">11dp</dimen>
<dimen name="dp_12">12dp</dimen>
<dimen name="dp_13">13dp</dimen>
<dimen name="dp_14">14dp</dimen>
<dimen name="dp_15">15dp</dimen>
<dimen name="dp_16">16dp</dimen>
<dimen name="dp_17">17dp</dimen>
<dimen name="dp_18">18dp</dimen>
<dimen name="dp_19">19dp</dimen>
<dimen name="dp_20">20dp</dimen>
<dimen name="dp_21">21dp</dimen>
<dimen name="dp_22">22dp</dimen>
<dimen name="dp_23">23dp</dimen>
<dimen name="dp_24">24dp</dimen>
<dimen name="dp_25">25dp</dimen>
<dimen name="dp_26">26dp</dimen>
<dimen name="dp_27">27dp</dimen>
<dimen name="dp_28">28dp</dimen>
<dimen name="dp_29">29dp</dimen>
<dimen name="dp_30">30dp</dimen>
<dimen name="dp_31">31dp</dimen>
<dimen name="dp_32">32dp</dimen>
<dimen name="dp_33">33dp</dimen>
<dimen name="dp_34">34dp</dimen>
<dimen name="dp_35">35dp</dimen>
<dimen name="dp_36">36dp</dimen>
<dimen name="dp_37">37dp</dimen>
<dimen name="dp_38">38dp</dimen>
<dimen name="dp_39">39dp</dimen>
<dimen name="dp_40">40dp</dimen>
<dimen name="dp_41">41dp</dimen>
<dimen name="dp_42">42dp</dimen>
<dimen name="dp_43">43dp</dimen>
<dimen name="dp_44">44dp</dimen>
<dimen name="dp_45">45dp</dimen>
<dimen name="dp_46">46dp</dimen>
<dimen name="dp_47">47dp</dimen>
<dimen name="dp_48">48dp</dimen>
<dimen name="dp_49">49dp</dimen>
<dimen name="dp_50">50dp</dimen>
<dimen name="dp_51">51dp</dimen>
<dimen name="dp_52">52dp</dimen>
<dimen name="dp_53">53dp</dimen>
<dimen name="dp_54">54dp</dimen>
<dimen name="dp_55">55dp</dimen>
<dimen name="dp_56">56dp</dimen>
<dimen name="dp_57">57dp</dimen>
<dimen name="dp_58">58dp</dimen>
<dimen name="dp_59">59dp</dimen>
<dimen name="dp_60">60dp</dimen>
<dimen name="dp_61">61dp</dimen>
<dimen name="dp_62">62dp</dimen>
<dimen name="dp_63">63dp</dimen>
<dimen name="dp_64">64dp</dimen>
<dimen name="dp_65">65dp</dimen>
<dimen name="dp_66">66dp</dimen>
<dimen name="dp_67">67dp</dimen>
<dimen name="dp_68">68dp</dimen>
<dimen name="dp_69">69dp</dimen>
<dimen name="dp_70">70dp</dimen>
<dimen name="dp_71">71dp</dimen>
<dimen name="dp_72">72dp</dimen>
<dimen name="dp_73">73dp</dimen>
<dimen name="dp_74">74dp</dimen>
<dimen name="dp_75">75dp</dimen>
<dimen name="dp_76">76dp</dimen>
<dimen name="dp_77">77dp</dimen>
<dimen name="dp_78">78dp</dimen>
<dimen name="dp_79">79dp</dimen>
<dimen name="dp_80">80dp</dimen>
<dimen name="dp_81">81dp</dimen>
<dimen name="dp_82">82dp</dimen>
<dimen name="dp_83">83dp</dimen>
<dimen name="dp_84">84dp</dimen>
<dimen name="dp_85">85dp</dimen>
<dimen name="dp_86">86dp</dimen>
<dimen name="dp_87">87dp</dimen>
<dimen name="dp_88">88dp</dimen>
<dimen name="dp_89">89dp</dimen>
<dimen name="dp_90">90dp</dimen>
<dimen name="dp_91">91dp</dimen>
<dimen name="dp_92">92dp</dimen>
<dimen name="dp_93">93dp</dimen>
<dimen name="dp_94">94dp</dimen>
<dimen name="dp_95">95dp</dimen>
<dimen name="dp_96">96dp</dimen>
<dimen name="dp_97">97dp</dimen>
<dimen name="dp_98">98dp</dimen>
<dimen name="dp_99">99dp</dimen>
<dimen name="dp_100">100dp</dimen>
<dimen name="dp_101">101dp</dimen>
<dimen name="dp_102">102dp</dimen>
<dimen name="dp_103">103dp</dimen>
<dimen name="dp_104">104dp</dimen>
<dimen name="dp_105">105dp</dimen>
<dimen name="dp_106">106dp</dimen>
<dimen name="dp_107">107dp</dimen>
<dimen name="dp_108">108dp</dimen>
<dimen name="dp_109">109dp</dimen>
<dimen name="dp_110">110dp</dimen>
<dimen name="dp_111">111dp</dimen>
<dimen name="dp_112">112dp</dimen>
<dimen name="dp_113">113dp</dimen>
<dimen name="dp_114">114dp</dimen>
<dimen name="dp_115">115dp</dimen>
<dimen name="dp_116">116dp</dimen>
<dimen name="dp_117">117dp</dimen>
<dimen name="dp_118">118dp</dimen>
<dimen name="dp_119">119dp</dimen>
<dimen name="dp_120">120dp</dimen>
<dimen name="dp_121">121dp</dimen>
<dimen name="dp_122">122dp</dimen>
<dimen name="dp_123">123dp</dimen>
<dimen name="dp_124">124dp</dimen>
<dimen name="dp_125">125dp</dimen>
<dimen name="dp_126">126dp</dimen>
<dimen name="dp_127">127dp</dimen>
<dimen name="dp_128">128dp</dimen>
<dimen name="dp_129">129dp</dimen>
<dimen name="dp_130">130dp</dimen>
<dimen name="dp_131">131dp</dimen>
<dimen name="dp_132">132dp</dimen>
<dimen name="dp_133">133dp</dimen>
<dimen name="dp_134">134dp</dimen>
<dimen name="dp_135">135dp</dimen>
<dimen name="dp_136">136dp</dimen>
<dimen name="dp_137">137dp</dimen>
<dimen name="dp_138">138dp</dimen>
<dimen name="dp_139">139dp</dimen>
<dimen name="dp_140">140dp</dimen>
<dimen name="dp_141">141dp</dimen>
<dimen name="dp_142">142dp</dimen>
<dimen name="dp_143">143dp</dimen>
<dimen name="dp_144">144dp</dimen>
<dimen name="dp_145">145dp</dimen>
<dimen name="dp_146">146dp</dimen>
<dimen name="dp_147">147dp</dimen>
<dimen name="dp_148">148dp</dimen>
<dimen name="dp_149">149dp</dimen>
<dimen name="dp_150">150dp</dimen>
<dimen name="dp_151">151dp</dimen>
<dimen name="dp_152">152dp</dimen>
<dimen name="dp_153">153dp</dimen>
<dimen name="dp_154">154dp</dimen>
<dimen name="dp_155">155dp</dimen>
<dimen name="dp_156">156dp</dimen>
<dimen name="dp_157">157dp</dimen>
<dimen name="dp_158">158dp</dimen>
<dimen name="dp_159">159dp</dimen>
<dimen name="dp_160">160dp</dimen>
<dimen name="dp_161">161dp</dimen>
<dimen name="dp_162">162dp</dimen>
<dimen name="dp_163">163dp</dimen>
<dimen name="dp_164">164dp</dimen>
<dimen name="dp_165">165dp</dimen>
<dimen name="dp_166">166dp</dimen>
<dimen name="dp_167">167dp</dimen>
<dimen name="dp_168">168dp</dimen>
<dimen name="dp_169">169dp</dimen>
<dimen name="dp_170">170dp</dimen>
<dimen name="dp_171">171dp</dimen>
<dimen name="dp_172">172dp</dimen>
<dimen name="dp_173">173dp</dimen>
<dimen name="dp_174">174dp</dimen>
<dimen name="dp_175">175dp</dimen>
<dimen name="dp_176">176dp</dimen>
<dimen name="dp_177">177dp</dimen>
<dimen name="dp_178">178dp</dimen>
<dimen name="dp_179">179dp</dimen>
<dimen name="dp_180">180dp</dimen>
<dimen name="dp_181">181dp</dimen>
<dimen name="dp_182">182dp</dimen>
<dimen name="dp_183">183dp</dimen>
<dimen name="dp_184">184dp</dimen>
<dimen name="dp_185">185dp</dimen>
<dimen name="dp_186">186dp</dimen>
<dimen name="dp_187">187dp</dimen>
<dimen name="dp_188">188dp</dimen>
<dimen name="dp_189">189dp</dimen>
<dimen name="dp_190">190dp</dimen>
<dimen name="dp_191">191dp</dimen>
<dimen name="dp_192">192dp</dimen>
<dimen name="dp_193">193dp</dimen>
<dimen name="dp_194">194dp</dimen>
<dimen name="dp_195">195dp</dimen>
<dimen name="dp_196">196dp</dimen>
<dimen name="dp_197">197dp</dimen>
<dimen name="dp_198">198dp</dimen>
<dimen name="dp_199">199dp</dimen>
<dimen name="dp_200">200dp</dimen>
<dimen name="dp_201">201dp</dimen>
<dimen name="dp_202">202dp</dimen>
<dimen name="dp_203">203dp</dimen>
<dimen name="dp_204">204dp</dimen>
<dimen name="dp_205">205dp</dimen>
<dimen name="dp_206">206dp</dimen>
<dimen name="dp_207">207dp</dimen>
<dimen name="dp_208">208dp</dimen>
<dimen name="dp_209">209dp</dimen>
<dimen name="dp_210">210dp</dimen>
<dimen name="dp_211">211dp</dimen>
<dimen name="dp_212">212dp</dimen>
<dimen name="dp_213">213dp</dimen>
<dimen name="dp_214">214dp</dimen>
<dimen name="dp_215">215dp</dimen>
<dimen name="dp_216">216dp</dimen>
<dimen name="dp_217">217dp</dimen>
<dimen name="dp_218">218dp</dimen>
<dimen name="dp_219">219dp</dimen>
<dimen name="dp_220">220dp</dimen>
<dimen name="dp_221">221dp</dimen>
<dimen name="dp_222">222dp</dimen>
<dimen name="dp_223">223dp</dimen>
<dimen name="dp_224">224dp</dimen>
<dimen name="dp_225">225dp</dimen>
<dimen name="dp_226">226dp</dimen>
<dimen name="dp_227">227dp</dimen>
<dimen name="dp_228">228dp</dimen>
<dimen name="dp_229">229dp</dimen>
<dimen name="dp_230">230dp</dimen>
<dimen name="dp_231">231dp</dimen>
<dimen name="dp_232">232dp</dimen>
<dimen name="dp_233">233dp</dimen>
<dimen name="dp_234">234dp</dimen>
<dimen name="dp_235">235dp</dimen>
<dimen name="dp_236">236dp</dimen>
<dimen name="dp_237">237dp</dimen>
<dimen name="dp_238">238dp</dimen>
<dimen name="dp_239">239dp</dimen>
<dimen name="dp_240">240dp</dimen>
<dimen name="dp_241">241dp</dimen>
<dimen name="dp_242">242dp</dimen>
<dimen name="dp_243">243dp</dimen>
<dimen name="dp_244">244dp</dimen>
<dimen name="dp_245">245dp</dimen>
<dimen name="dp_246">246dp</dimen>
<dimen name="dp_247">247dp</dimen>
<dimen name="dp_248">248dp</dimen>
<dimen name="dp_249">249dp</dimen>
<dimen name="dp_250">250dp</dimen>
<dimen name="dp_251">251dp</dimen>
<dimen name="dp_252">252dp</dimen>
<dimen name="dp_253">253dp</dimen>
<dimen name="dp_254">254dp</dimen>
<dimen name="dp_255">255dp</dimen>
<dimen name="dp_256">256dp</dimen>
<dimen name="dp_257">257dp</dimen>
<dimen name="dp_258">258dp</dimen>
<dimen name="dp_259">259dp</dimen>
<dimen name="dp_260">260dp</dimen>
<dimen name="dp_261">261dp</dimen>
<dimen name="dp_262">262dp</dimen>
<dimen name="dp_263">263dp</dimen>
<dimen name="dp_264">264dp</dimen>
<dimen name="dp_265">265dp</dimen>
<dimen name="dp_266">266dp</dimen>
<dimen name="dp_267">267dp</dimen>
<dimen name="dp_268">268dp</dimen>
<dimen name="dp_269">269dp</dimen>
<dimen name="dp_270">270dp</dimen>
<dimen name="dp_271">271dp</dimen>
<dimen name="dp_272">272dp</dimen>
<dimen name="dp_273">273dp</dimen>
<dimen name="dp_274">274dp</dimen>
<dimen name="dp_275">275dp</dimen>
<dimen name="dp_276">276dp</dimen>
<dimen name="dp_277">277dp</dimen>
<dimen name="dp_278">278dp</dimen>
<dimen name="dp_279">279dp</dimen>
<dimen name="dp_280">280dp</dimen>
<dimen name="dp_281">281dp</dimen>
<dimen name="dp_282">282dp</dimen>
<dimen name="dp_283">283dp</dimen>
<dimen name="dp_284">284dp</dimen>
<dimen name="dp_285">285dp</dimen>
<dimen name="dp_286">286dp</dimen>
<dimen name="dp_287">287dp</dimen>
<dimen name="dp_288">288dp</dimen>
<dimen name="dp_289">289dp</dimen>
<dimen name="dp_290">290dp</dimen>
<dimen name="dp_291">291dp</dimen>
<dimen name="dp_292">292dp</dimen>
<dimen name="dp_293">293dp</dimen>
<dimen name="dp_294">294dp</dimen>
<dimen name="dp_295">295dp</dimen>
<dimen name="dp_296">296dp</dimen>
<dimen name="dp_297">297dp</dimen>
<dimen name="dp_298">298dp</dimen>
<dimen name="dp_299">299dp</dimen>
<dimen name="dp_300">300dp</dimen>
<dimen name="dp_301">301dp</dimen>
<dimen name="dp_302">302dp</dimen>
<dimen name="dp_303">303dp</dimen>
<dimen name="dp_304">304dp</dimen>
<dimen name="dp_305">305dp</dimen>
<dimen name="dp_306">306dp</dimen>
<dimen name="dp_307">307dp</dimen>
<dimen name="dp_308">308dp</dimen>
<dimen name="dp_309">309dp</dimen>
<dimen name="dp_310">310dp</dimen>
<dimen name="dp_311">311dp</dimen>
<dimen name="dp_312">312dp</dimen>
<dimen name="dp_313">313dp</dimen>
<dimen name="dp_314">314dp</dimen>
<dimen name="dp_315">315dp</dimen>
<dimen name="dp_316">316dp</dimen>
<dimen name="dp_317">317dp</dimen>
<dimen name="dp_318">318dp</dimen>
<dimen name="dp_319">319dp</dimen>
<dimen name="dp_320">320dp</dimen>
<dimen name="dp_321">321dp</dimen>
<dimen name="dp_322">322dp</dimen>
<dimen name="dp_323">323dp</dimen>
<dimen name="dp_324">324dp</dimen>
<dimen name="dp_325">325dp</dimen>
<dimen name="dp_326">326dp</dimen>
<dimen name="dp_327">327dp</dimen>
<dimen name="dp_328">328dp</dimen>
<dimen name="dp_329">329dp</dimen>
<dimen name="dp_330">330dp</dimen>
<dimen name="dp_331">331dp</dimen>
<dimen name="dp_332">332dp</dimen>
<dimen name="dp_333">333dp</dimen>
<dimen name="dp_334">334dp</dimen>
<dimen name="dp_335">335dp</dimen>
<dimen name="dp_336">336dp</dimen>
<dimen name="dp_337">337dp</dimen>
<dimen name="dp_338">338dp</dimen>
<dimen name="dp_339">339dp</dimen>
<dimen name="dp_340">340dp</dimen>
<dimen name="dp_341">341dp</dimen>
<dimen name="dp_342">342dp</dimen>
<dimen name="dp_343">343dp</dimen>
<dimen name="dp_344">344dp</dimen>
<dimen name="dp_345">345dp</dimen>
<dimen name="dp_346">346dp</dimen>
<dimen name="dp_347">347dp</dimen>
<dimen name="dp_348">348dp</dimen>
<dimen name="dp_349">349dp</dimen>
<dimen name="dp_350">350dp</dimen>
<dimen name="dp_351">351dp</dimen>
<dimen name="dp_352">352dp</dimen>
<dimen name="dp_353">353dp</dimen>
<dimen name="dp_354">354dp</dimen>
<dimen name="dp_355">355dp</dimen>
<dimen name="dp_356">356dp</dimen>
<dimen name="dp_357">357dp</dimen>
<dimen name="dp_358">358dp</dimen>
<dimen name="dp_359">359dp</dimen>
<dimen name="dp_360">360dp</dimen>
<dimen name="dp_365">365dp</dimen>
<dimen name="dp_370">370dp</dimen>
<dimen name="dp_400">400dp</dimen>
<dimen name="dp_410">410dp</dimen>
<dimen name="dp_422">422dp</dimen>
<dimen name="dp_472">472dp</dimen>
<dimen name="dp_500">500dp</dimen>
<dimen name="dp_600">600dp</dimen>
<dimen name="dp_640">640dp</dimen>
<dimen name="dp_720">720dp</dimen>
<dimen name="dp_376">376dp</dimen>
<dimen name="dp_383">383dp</dimen>
<dimen name="dp_412">412dp</dimen>
<dimen name="dp_420">420dp</dimen>
<dimen name="dp_441">441dp</dimen>
<dimen name="dp_460">460dp</dimen>
<dimen name="dp_552">552dp</dimen>
<dimen name="dp_554">554dp</dimen>
<dimen name="dp_622">622dp</dimen>
<!-- font size,you can add if there is no one -->
<dimen name="sp_6">6sp</dimen>
<dimen name="sp_7">7sp</dimen>
<dimen name="sp_8">8sp</dimen>
<dimen name="sp_9">9sp</dimen>
<dimen name="sp_10">10sp</dimen>
<dimen name="sp_11">11sp</dimen>
<dimen name="sp_12">12sp</dimen>
<dimen name="sp_13">13sp</dimen>
<dimen name="sp_14">14sp</dimen>
<dimen name="sp_15">15sp</dimen>
<dimen name="sp_16">16sp</dimen>
<dimen name="sp_17">17sp</dimen>
<dimen name="sp_18">18sp</dimen>
<dimen name="sp_19">19sp</dimen>
<dimen name="sp_20">20sp</dimen>
<dimen name="sp_21">21sp</dimen>
<dimen name="sp_22">22sp</dimen>
<dimen name="sp_23">23sp</dimen>
<dimen name="sp_24">24sp</dimen>
<dimen name="sp_25">25sp</dimen>
<dimen name="sp_27">27sp</dimen>
<dimen name="sp_28">28sp</dimen>
<dimen name="sp_30">30sp</dimen>
<dimen name="sp_31">31sp</dimen>
<dimen name="sp_32">32sp</dimen>
<dimen name="sp_34">34sp</dimen>
<dimen name="sp_36">36sp</dimen>
<dimen name="sp_38">38sp</dimen>
<dimen name="sp_40">40sp</dimen>
<dimen name="sp_42">42sp</dimen>
<dimen name="sp_44">44sp</dimen>
<dimen name="sp_48">48sp</dimen>
<dimen name="sp_56">56sp</dimen>
<dimen name="sp_64">64sp</dimen>
<dimen name="sp_70">70sp</dimen>
<dimen name="sp_72">72sp</dimen>
</resources>
```