网上关于屏幕适配的文章已经铺天盖地了,现在基本都是使用 屏幕分辨率限定符 进行适配,即每种屏幕分辨率的设备需要定义一套 dimens.xml 文件。由于不同分辨率的设备太多了,而且有些设备还有虚拟按键(例如华为手机),这样就还需要每个有虚拟按键的设备加多一套 dimens.xml 文件,再加上平板那些你会发现 dimens.xml 文件所占的体积已经超过2M了!这绝对不是我们想要的。我这里是使用 sw<N>dp限定符,即 smallestWidth(最小宽度) 限定符 来进行适配,使用这种方式只需要少量 dimens.xml 文件即可达到适配,而且根本不用考虑虚拟按键的问题。如果只适配手机,dimens.xml 文件所占的体积只有 100 多 KB,即使加上平板和 TV,也就500多KB,完全可以接收。
一、为什么要进行Android屏幕适配
由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致:
- Android系统碎片化:小米定制的MIUI、魅族定制的flyme、华为定制的EMUI等等
当然都是基于Google原生系统定制的
- Android机型屏幕尺寸碎片化:5寸、5.5寸、6寸等等
- Android屏幕分辨率碎片化:320x480、480x800、720x1280、1080x1920
据友盟指数显示,统计至2019 年,支持Android的设备已超过30000多种
当Android系统、屏幕尺寸、屏幕密度出现碎片化的时候,就很容易出现同一元素在不同手机上显示不同的问题。
试想一下这么一个场景:
为4.3寸屏幕准备的UI设计图,运行在5.0寸的屏幕上,很可能在右侧和下侧存在大量的空白;而5.0寸的UI设计图运行到4.3寸的设备上,很可能显示不下。
为了保证用户获得一致的用户体验效果:
使得某一元素在Android不同尺寸、不同分辨率的手机上具备相同的显示效果
于是,我们便需要对Android屏幕进行适配。
二、使用ScreenMatch 插件进行屏幕适配
1.工具使用步骤:
在 Android Studio 中安装 ScreenMatch 插件
下载插件 ScreenMatch 到本地,点击菜单栏上的 File -> Settings -> Plugins -> Install plugin from disk,然后选择我们刚刚下载的插件,最后点击 “OK”,重启 Andorid Studio 即可。如下图所示:
2.在项目的默认 values 文件夹中需要一份 dimens.xml 文件,如下图:
dimens.xml 代码如下:
-
<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>
-
-
<!-- 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_28">28sp
</dimen>
-
<dimen name="sp_30">30sp
</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_48">48sp
</dimen>
-
</resources>
3、执行生成
插件安装好后,在项目的任意目录或文件上右键,选择 ScreenMatch 选项。如下图:
然后选择在哪个 module 下执行适配。即基于哪个 module 下的 res/values/dimens.xml 文件作为基准 dimens.xml 文件,生成的其他尺寸 dimens.xml 文件放在哪个 module 下。例如选择 app,然后点击 OK ,出现如下界面表示生成文件成功。如下图:
然后再看看 res 目录下会自动生成一堆 dimens.xml 文件,如下图:
4.根据设计图填写最小宽度基准值,并填写需要适配的设备最小宽度 dp 值
步骤 3 是以插件默认的最小宽度基准值为 360dp,适配的设备最小宽度为
320,360,384,392.7272,400,410,411.4285,432,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365(包含了平板和 TV )生成的文件,但实际情况要根据设计图和需求设置。
例如设计图的最小宽度为 375dp,则需要更改最小宽度基准值为 375dp。如果项目只需要适配手机的话,适配的设备最小宽度保留 320,360,384,392.7272,400,410,411.4285,432,480 即可,若发现手机还有其他最小宽度自行加上即可,也麻烦把该最小宽度提供给我,我们一起来完善该份适配。
以上修改需要在配置文件里修改,即 screenMatch.properties 文件,该配置文件是执行完上面第 3 步后自动生成在项目的跟目录下的。如下图:
5.根据设计图标注,在布局写上对应的值。
设计图标注多少 dp,布局中就写多少 dp ,非常方便!
- 大多数 UI 设计师提供设计图有如下几种方式:
上传到蓝湖:显示多少 dp 就写多少 dp。
psd 源文件:用像素大厨查看,显示多少 dp 就写多少 dp(注意像素大厨需要选择与设计图对应的dpi 进行显示)
dp 单位的设计图:标注多少 dp 就写多少 dp。
px 单位的设计图:叫 UI 设计师标注为 dp 单位或跟她要 psd 源文件,如果都不行,那自己算吧!
- 举例:例如设计图上一个Button 的宽为 300dp,高为 50dp,字体大小为 15 sp,在布局中则这样使用
-
<Button
-
android:layout_width= "@dimen/dp_300"
-
android:layout_height= "@dimen/dp_50"
-
android:text= "button"
-
android:textSize= "@dimen/sp_15" />
-
转载:https://blog.csdn.net/maminghuicsdn/article/details/106070029