• android--屏幕适配


    基础概念

    像素密度  dpi =( √宽^2+高^2 ) / 屏幕大小       

    手机分辨率  1080 * 1920       1080代表宽    1920代表高     单位为px像素      屏幕大小为英寸

    标准的像素密度   mdpi   160dpi    

    dp     密度无关像素

    dp与px的转换

    density = (dpi / 160)

    px = dp * (dpi / 160) = dp * density

    dp = px / (dpi / 160) = px * density

    密度类型分辨率屏幕密度dpi换算(px/dp)比例
    低             Idpi240*3201201dp = 0.75px3
    中             mdpi320*4801601dp = 1px4
    高             hdpi480*8002401dp = 1.5px6
    超高        xhdpi720*12803201dp = 2px8
    超超高    xxhdpi1080*19204801dp = 3px12

    在android中 规定以160dpi(分辨率 320 * 480) 为基准1dp = 1px

    独立比例像素

    sp   文字御用单位

    概念上不存在适配问题  但碎片屏幕较多   所以导致这一问题

    今日头条适配方案

    原理:通过修改 density值    density由手机来定

    px = dp * (dpi / 160)

    density = (dpi / 160)

    px = dp * density     

    而系统使用的density值,是 DisplayMetrics 中的成员变量,而 DisplayMetrics 实例通过 Resources#getDisplayMetrics 可以获得,而Resouces通过Activity或者ApplicationContext获得。也就是说所有的dp和px的转换都是通过 DisplayMetrics 中相关的值来计算的,所以只需要修改DisplayMetrics中的density值,就可以完成dp适配。sp的适配也类似,只是多了一个缩放因子,让用户可以改变字体大小

    下面我们以360dp为基准   density = 宽 / 360

    1. public class ScreenAdpt {
    2. /** 设计图宽度dp */
    3. private static final float width = 360;
    4. private static float textDensity = 0;
    5. private static float textScaledDensity = 0;
    6. /**
    7. * @param activity
    8. */
    9. public static void setCustomDensity(@NonNull final Activity activity) {
    10. final Application application = activity.getApplication();
    11. final DisplayMetrics displayMetrics = application.getResources().getDisplayMetrics();
    12. if (textDensity == 0) {
    13. textDensity = displayMetrics.density;
    14. textScaledDensity = displayMetrics.scaledDensity;
    15. application.registerComponentCallbacks(new ComponentCallbacks() {
    16. @Override
    17. public void onConfigurationChanged(Configuration configuration) {
    18. if (configuration != null && configuration.fontScale > 0) {
    19. textScaledDensity = application.getResources().getDisplayMetrics().scaledDensity;
    20. }
    21. }
    22. @Override
    23. public void onLowMemory() {
    24. }
    25. });
    26. }
    27. final float targetDensity = displayMetrics.widthPixels / width;
    28. final float targetScaledDensity = targetDensity * (textScaledDensity / textDensity);
    29. final int targetDpi = (int) (160 * targetDensity);
    30. displayMetrics.density = targetDensity;
    31. displayMetrics.scaledDensity = targetScaledDensity;
    32. displayMetrics.densityDpi = targetDpi;
    33. final DisplayMetrics activityDisplayMetrics = activity.getResources().getDisplayMetrics();
    34. activityDisplayMetrics.density = targetDensity;
    35. activityDisplayMetrics.scaledDensity = targetScaledDensity;
    36. activityDisplayMetrics.densityDpi = targetDpi;
    37. }
    38. }

    限定符屏幕适配

    实现原理:Android会识别屏幕可用高度和宽度的最小尺寸的dp值(其实就是手机的宽度值),然后根据识别到的结果去资源文件中寻找对应限定符的文件夹下的资源文件

    sw限定符适配 和 宽高限定符适配 类似,区别在于,前者有很好的容错机制,如果没有value-sw360dp文件夹,系统会就近查找,比如离360dp最近的只有value-sw350dp,那么Android就会选择value-sw350dp文件夹下面的资源文件。这个特性就完美的解决了上文提到的宽高限定符的容错问

    优点:

        1.非常稳定,极低概率出现意外

        2.不会有任何性能的损耗

        3.适配范围可自由控制,不会影响其他三方库

    缺点:

        多个dimens文件可能导致apk变大,几百k。

    问:在项目的其他 module 中怎么实现适配?难道也要多套 dimens 文件?

    答:并不需要多套 dimens 文件,只需要在 values 文件夹下有一套与 app module 一样的 dimens 文件即可达到适配。因为经过编译,所有 module 中的 dimen 数据都会统一归类到主 module(即 app module)中的 values/dimens.xml 文件中了,然后系统又会根据你设置的值去找对应 values-swxxxdp 文件夹下的dimens.xml 文件中的值。

    • 1.第一步下载插件

    下载好后不用重启as应该都可以使用

    2.在任意文件夹下查看是否已有

    如果没有的话那就重启一下吧

    • 在values下新建dimens.xml文件

    在改文件中进行我们会用到的变量的声明,这里根据自己的需要设定就行,

    这里是我随便设置的一些值

    1. "1.0" encoding="utf-8"?>
    2. <resources>
    3. <dimen name="common_margin">@dimen/dp_15dimen>
    4. <dimen name="dp_m_60">-60dpdimen>
    5. <dimen name="dp_m_30">-30dpdimen>
    6. <dimen name="dp_m_20">-20dpdimen>
    7. <dimen name="dp_m_12">-12dpdimen>
    8. <dimen name="dp_m_10">-10dpdimen>
    9. <dimen name="dp_m_8">-8dpdimen>
    10. <dimen name="dp_m_5">-5dpdimen>
    11. <dimen name="dp_m_2">-2dpdimen>
    12. <dimen name="dp_m_1">-1dpdimen>
    13. <dimen name="dp_0">0dpdimen>
    14. <dimen name="dp_0_1">0.1dpdimen>
    15. <dimen name="dp_0_5">0.5dpdimen>
    16. <dimen name="dp_1">1dpdimen>
    17. <dimen name="dp_1_5">1.5dpdimen>
    18. <dimen name="dp_2">2dpdimen>
    19. <dimen name="dp_2_5">2.5dpdimen>
    20. <dimen name="dp_3">3dpdimen>
    21. <dimen name="dp_3_5">3.5dpdimen>
    22. <dimen name="dp_4">4dpdimen>
    23. <dimen name="dp_4_5">4.5dpdimen>
    24. <dimen name="dp_5">5dpdimen>
    25. <dimen name="dp_6">6dpdimen>
    26. <dimen name="dp_7">7dpdimen>
    27. <dimen name="dp_8">8dpdimen>
    28. <dimen name="dp_9">9dpdimen>
    29. <dimen name="dp_10">10dpdimen>
    30. <dimen name="dp_11">11dpdimen>
    31. <dimen name="dp_12">12dpdimen>
    32. <dimen name="dp_13">13dpdimen>
    33. <dimen name="dp_14">14dpdimen>
    34. <dimen name="dp_15">15dpdimen>
    35. <dimen name="dp_16">16dpdimen>
    36. <dimen name="dp_17">17dpdimen>
    37. <dimen name="dp_18">18dpdimen>
    38. <dimen name="dp_19">19dpdimen>
    39. <dimen name="dp_20">20dpdimen>
    40. <dimen name="dp_21">21dpdimen>
    41. <dimen name="dp_22">22dpdimen>
    42. <dimen name="dp_23">23dpdimen>
    43. <dimen name="dp_24">24dpdimen>
    44. <dimen name="dp_25">25dpdimen>
    45. <dimen name="dp_26">26dpdimen>
    46. <dimen name="dp_27">27dpdimen>
    47. <dimen name="dp_28">28dpdimen>
    48. <dimen name="dp_29">29dpdimen>
    49. <dimen name="dp_30">30dpdimen>
    50. <dimen name="dp_31">31dpdimen>
    51. <dimen name="dp_32">32dpdimen>
    52. <dimen name="dp_33">33dpdimen>
    53. <dimen name="dp_34">34dpdimen>
    54. <dimen name="dp_35">35dpdimen>
    55. <dimen name="dp_36">36dpdimen>
    56. <dimen name="dp_37">37dpdimen>
    57. <dimen name="dp_38">38dpdimen>
    58. <dimen name="dp_39">39dpdimen>
    59. <dimen name="dp_40">40dpdimen>
    60. <dimen name="dp_41">41dpdimen>
    61. <dimen name="dp_42">42dpdimen>
    62. <dimen name="dp_43">43dpdimen>
    63. <dimen name="dp_44">44dpdimen>
    64. <dimen name="dp_45">45dpdimen>
    65. <dimen name="dp_46">46dpdimen>
    66. <dimen name="dp_47">47dpdimen>
    67. <dimen name="dp_48">48dpdimen>
    68. <dimen name="dp_49">49dpdimen>
    69. <dimen name="dp_50">50dpdimen>
    70. <dimen name="dp_51">51dpdimen>
    71. <dimen name="dp_52">52dpdimen>
    72. <dimen name="dp_53">53dpdimen>
    73. <dimen name="dp_54">54dpdimen>
    74. <dimen name="dp_55">55dpdimen>
    75. <dimen name="dp_56">56dpdimen>
    76. <dimen name="dp_57">57dpdimen>
    77. <dimen name="dp_58">58dpdimen>
    78. <dimen name="dp_59">59dpdimen>
    79. <dimen name="dp_60">60dpdimen>
    80. <dimen name="dp_61">61dpdimen>
    81. <dimen name="dp_62">62dpdimen>
    82. <dimen name="dp_63">63dpdimen>
    83. <dimen name="dp_64">64dpdimen>
    84. <dimen name="dp_65">65dpdimen>
    85. <dimen name="dp_66">66dpdimen>
    86. <dimen name="dp_67">67dpdimen>
    87. <dimen name="dp_68">68dpdimen>
    88. <dimen name="dp_69">69dpdimen>
    89. <dimen name="dp_70">70dpdimen>
    90. <dimen name="dp_71">71dpdimen>
    91. <dimen name="dp_72">72dpdimen>
    92. <dimen name="dp_73">73dpdimen>
    93. <dimen name="dp_74">74dpdimen>
    94. <dimen name="dp_75">75dpdimen>
    95. <dimen name="dp_76">76dpdimen>
    96. <dimen name="dp_77">77dpdimen>
    97. <dimen name="dp_78">78dpdimen>
    98. <dimen name="dp_79">79dpdimen>
    99. <dimen name="dp_80">80dpdimen>
    100. <dimen name="dp_81">81dpdimen>
    101. <dimen name="dp_82">82dpdimen>
    102. <dimen name="dp_83">83dpdimen>
    103. <dimen name="dp_84">84dpdimen>
    104. <dimen name="dp_85">85dpdimen>
    105. <dimen name="dp_86">86dpdimen>
    106. <dimen name="dp_87">87dpdimen>
    107. <dimen name="dp_88">88dpdimen>
    108. <dimen name="dp_89">89dpdimen>
    109. <dimen name="dp_90">90dpdimen>
    110. <dimen name="dp_91">91dpdimen>
    111. <dimen name="dp_92">92dpdimen>
    112. <dimen name="dp_93">93dpdimen>
    113. <dimen name="dp_94">94dpdimen>
    114. <dimen name="dp_95">95dpdimen>
    115. <dimen name="dp_96">96dpdimen>
    116. <dimen name="dp_97">97dpdimen>
    117. <dimen name="dp_98">98dpdimen>
    118. <dimen name="dp_99">99dpdimen>
    119. <dimen name="dp_100">100dpdimen>
    120. <dimen name="dp_101">101dpdimen>
    121. <dimen name="dp_102">102dpdimen>
    122. <dimen name="dp_103">103dpdimen>
    123. <dimen name="dp_104">104dpdimen>
    124. <dimen name="dp_105">105dpdimen>
    125. <dimen name="dp_106">106dpdimen>
    126. <dimen name="dp_107">107dpdimen>
    127. <dimen name="dp_108">108dpdimen>
    128. <dimen name="dp_109">109dpdimen>
    129. <dimen name="dp_110">110dpdimen>
    130. <dimen name="dp_111">111dpdimen>
    131. <dimen name="dp_112">112dpdimen>
    132. <dimen name="dp_113">113dpdimen>
    133. <dimen name="dp_114">114dpdimen>
    134. <dimen name="dp_115">115dpdimen>
    135. <dimen name="dp_116">116dpdimen>
    136. <dimen name="dp_117">117dpdimen>
    137. <dimen name="dp_118">118dpdimen>
    138. <dimen name="dp_119">119dpdimen>
    139. <dimen name="dp_120">120dpdimen>
    140. <dimen name="dp_121">121dpdimen>
    141. <dimen name="dp_122">122dpdimen>
    142. <dimen name="dp_123">123dpdimen>
    143. <dimen name="dp_124">124dpdimen>
    144. <dimen name="dp_125">125dpdimen>
    145. <dimen name="dp_126">126dpdimen>
    146. <dimen name="dp_127">127dpdimen>
    147. <dimen name="dp_128">128dpdimen>
    148. <dimen name="dp_129">129dpdimen>
    149. <dimen name="dp_130">130dpdimen>
    150. <dimen name="dp_131">131dpdimen>
    151. <dimen name="dp_132">132dpdimen>
    152. <dimen name="dp_133">133dpdimen>
    153. <dimen name="dp_134">134dpdimen>
    154. <dimen name="dp_135">135dpdimen>
    155. <dimen name="dp_136">136dpdimen>
    156. <dimen name="dp_137">137dpdimen>
    157. <dimen name="dp_138">138dpdimen>
    158. <dimen name="dp_139">139dpdimen>
    159. <dimen name="dp_140">140dpdimen>
    160. <dimen name="dp_141">141dpdimen>
    161. <dimen name="dp_142">142dpdimen>
    162. <dimen name="dp_143">143dpdimen>
    163. <dimen name="dp_144">144dpdimen>
    164. <dimen name="dp_145">145dpdimen>
    165. <dimen name="dp_146">146dpdimen>
    166. <dimen name="dp_147">147dpdimen>
    167. <dimen name="dp_148">148dpdimen>
    168. <dimen name="dp_149">149dpdimen>
    169. <dimen name="dp_150">150dpdimen>
    170. <dimen name="dp_151">151dpdimen>
    171. <dimen name="dp_152">152dpdimen>
    172. <dimen name="dp_153">153dpdimen>
    173. <dimen name="dp_154">154dpdimen>
    174. <dimen name="dp_155">155dpdimen>
    175. <dimen name="dp_156">156dpdimen>
    176. <dimen name="dp_157">157dpdimen>
    177. <dimen name="dp_158">158dpdimen>
    178. <dimen name="dp_159">159dpdimen>
    179. <dimen name="dp_160">160dpdimen>
    180. <dimen name="dp_161">161dpdimen>
    181. <dimen name="dp_162">162dpdimen>
    182. <dimen name="dp_163">163dpdimen>
    183. <dimen name="dp_164">164dpdimen>
    184. <dimen name="dp_165">165dpdimen>
    185. <dimen name="dp_166">166dpdimen>
    186. <dimen name="dp_167">167dpdimen>
    187. <dimen name="dp_168">168dpdimen>
    188. <dimen name="dp_169">169dpdimen>
    189. <dimen name="dp_170">170dpdimen>
    190. <dimen name="dp_171">171dpdimen>
    191. <dimen name="dp_172">172dpdimen>
    192. <dimen name="dp_173">173dpdimen>
    193. <dimen name="dp_174">174dpdimen>
    194. <dimen name="dp_175">175dpdimen>
    195. <dimen name="dp_176">176dpdimen>
    196. <dimen name="dp_177">177dpdimen>
    197. <dimen name="dp_178">178dpdimen>
    198. <dimen name="dp_179">179dpdimen>
    199. <dimen name="dp_180">180dpdimen>
    200. <dimen name="dp_181">181dpdimen>
    201. <dimen name="dp_182">182dpdimen>
    202. <dimen name="dp_183">183dpdimen>
    203. <dimen name="dp_184">184dpdimen>
    204. <dimen name="dp_185">185dpdimen>
    205. <dimen name="dp_186">186dpdimen>
    206. <dimen name="dp_187">187dpdimen>
    207. <dimen name="dp_188">188dpdimen>
    208. <dimen name="dp_189">189dpdimen>
    209. <dimen name="dp_190">190dpdimen>
    210. <dimen name="dp_191">191dpdimen>
    211. <dimen name="dp_192">192dpdimen>
    212. <dimen name="dp_193">193dpdimen>
    213. <dimen name="dp_194">194dpdimen>
    214. <dimen name="dp_195">195dpdimen>
    215. <dimen name="dp_196">196dpdimen>
    216. <dimen name="dp_197">197dpdimen>
    217. <dimen name="dp_198">198dpdimen>
    218. <dimen name="dp_199">199dpdimen>
    219. <dimen name="dp_200">200dpdimen>
    220. <dimen name="dp_201">201dpdimen>
    221. <dimen name="dp_202">202dpdimen>
    222. <dimen name="dp_203">203dpdimen>
    223. <dimen name="dp_204">204dpdimen>
    224. <dimen name="dp_205">205dpdimen>
    225. <dimen name="dp_206">206dpdimen>
    226. <dimen name="dp_207">207dpdimen>
    227. <dimen name="dp_208">208dpdimen>
    228. <dimen name="dp_209">209dpdimen>
    229. <dimen name="dp_210">210dpdimen>
    230. <dimen name="dp_211">211dpdimen>
    231. <dimen name="dp_212">212dpdimen>
    232. <dimen name="dp_213">213dpdimen>
    233. <dimen name="dp_214">214dpdimen>
    234. <dimen name="dp_215">215dpdimen>
    235. <dimen name="dp_216">216dpdimen>
    236. <dimen name="dp_217">217dpdimen>
    237. <dimen name="dp_218">218dpdimen>
    238. <dimen name="dp_219">219dpdimen>
    239. <dimen name="dp_220">220dpdimen>
    240. <dimen name="dp_221">221dpdimen>
    241. <dimen name="dp_222">222dpdimen>
    242. <dimen name="dp_223">223dpdimen>
    243. <dimen name="dp_224">224dpdimen>
    244. <dimen name="dp_225">225dpdimen>
    245. <dimen name="dp_226">226dpdimen>
    246. <dimen name="dp_227">227dpdimen>
    247. <dimen name="dp_228">228dpdimen>
    248. <dimen name="dp_229">229dpdimen>
    249. <dimen name="dp_230">230dpdimen>
    250. <dimen name="dp_231">231dpdimen>
    251. <dimen name="dp_232">232dpdimen>
    252. <dimen name="dp_233">233dpdimen>
    253. <dimen name="dp_234">234dpdimen>
    254. <dimen name="dp_235">235dpdimen>
    255. <dimen name="dp_236">236dpdimen>
    256. <dimen name="dp_237">237dpdimen>
    257. <dimen name="dp_238">238dpdimen>
    258. <dimen name="dp_239">239dpdimen>
    259. <dimen name="dp_240">240dpdimen>
    260. <dimen name="dp_241">241dpdimen>
    261. <dimen name="dp_242">242dpdimen>
    262. <dimen name="dp_243">243dpdimen>
    263. <dimen name="dp_244">244dpdimen>
    264. <dimen name="dp_245">245dpdimen>
    265. <dimen name="dp_246">246dpdimen>
    266. <dimen name="dp_247">247dpdimen>
    267. <dimen name="dp_248">248dpdimen>
    268. <dimen name="dp_249">249dpdimen>
    269. <dimen name="dp_250">250dpdimen>
    270. <dimen name="dp_251">251dpdimen>
    271. <dimen name="dp_252">252dpdimen>
    272. <dimen name="dp_253">253dpdimen>
    273. <dimen name="dp_254">254dpdimen>
    274. <dimen name="dp_255">255dpdimen>
    275. <dimen name="dp_256">256dpdimen>
    276. <dimen name="dp_257">257dpdimen>
    277. <dimen name="dp_258">258dpdimen>
    278. <dimen name="dp_259">259dpdimen>
    279. <dimen name="dp_260">260dpdimen>
    280. <dimen name="dp_261">261dpdimen>
    281. <dimen name="dp_262">262dpdimen>
    282. <dimen name="dp_263">263dpdimen>
    283. <dimen name="dp_264">264dpdimen>
    284. <dimen name="dp_265">265dpdimen>
    285. <dimen name="dp_266">266dpdimen>
    286. <dimen name="dp_267">267dpdimen>
    287. <dimen name="dp_268">268dpdimen>
    288. <dimen name="dp_269">269dpdimen>
    289. <dimen name="dp_270">270dpdimen>
    290. <dimen name="dp_271">271dpdimen>
    291. <dimen name="dp_272">272dpdimen>
    292. <dimen name="dp_273">273dpdimen>
    293. <dimen name="dp_274">274dpdimen>
    294. <dimen name="dp_275">275dpdimen>
    295. <dimen name="dp_276">276dpdimen>
    296. <dimen name="dp_277">277dpdimen>
    297. <dimen name="dp_278">278dpdimen>
    298. <dimen name="dp_279">279dpdimen>
    299. <dimen name="dp_280">280dpdimen>
    300. <dimen name="dp_281">281dpdimen>
    301. <dimen name="dp_282">282dpdimen>
    302. <dimen name="dp_283">283dpdimen>
    303. <dimen name="dp_284">284dpdimen>
    304. <dimen name="dp_285">285dpdimen>
    305. <dimen name="dp_286">286dpdimen>
    306. <dimen name="dp_287">287dpdimen>
    307. <dimen name="dp_288">288dpdimen>
    308. <dimen name="dp_289">289dpdimen>
    309. <dimen name="dp_290">290dpdimen>
    310. <dimen name="dp_291">291dpdimen>
    311. <dimen name="dp_292">292dpdimen>
    312. <dimen name="dp_293">293dpdimen>
    313. <dimen name="dp_294">294dpdimen>
    314. <dimen name="dp_295">295dpdimen>
    315. <dimen name="dp_296">296dpdimen>
    316. <dimen name="dp_297">297dpdimen>
    317. <dimen name="dp_298">298dpdimen>
    318. <dimen name="dp_299">299dpdimen>
    319. <dimen name="dp_300">300dpdimen>
    320. <dimen name="dp_301">301dpdimen>
    321. <dimen name="dp_302">302dpdimen>
    322. <dimen name="dp_303">303dpdimen>
    323. <dimen name="dp_304">304dpdimen>
    324. <dimen name="dp_305">305dpdimen>
    325. <dimen name="dp_306">306dpdimen>
    326. <dimen name="dp_307">307dpdimen>
    327. <dimen name="dp_308">308dpdimen>
    328. <dimen name="dp_309">309dpdimen>
    329. <dimen name="dp_310">310dpdimen>
    330. <dimen name="dp_311">311dpdimen>
    331. <dimen name="dp_312">312dpdimen>
    332. <dimen name="dp_313">313dpdimen>
    333. <dimen name="dp_314">314dpdimen>
    334. <dimen name="dp_315">315dpdimen>
    335. <dimen name="dp_316">316dpdimen>
    336. <dimen name="dp_317">317dpdimen>
    337. <dimen name="dp_318">318dpdimen>
    338. <dimen name="dp_319">319dpdimen>
    339. <dimen name="dp_320">320dpdimen>
    340. <dimen name="dp_321">321dpdimen>
    341. <dimen name="dp_322">322dpdimen>
    342. <dimen name="dp_323">323dpdimen>
    343. <dimen name="dp_324">324dpdimen>
    344. <dimen name="dp_325">325dpdimen>
    345. <dimen name="dp_326">326dpdimen>
    346. <dimen name="dp_327">327dpdimen>
    347. <dimen name="dp_328">328dpdimen>
    348. <dimen name="dp_329">329dpdimen>
    349. <dimen name="dp_330">330dpdimen>
    350. <dimen name="dp_331">331dpdimen>
    351. <dimen name="dp_332">332dpdimen>
    352. <dimen name="dp_333">333dpdimen>
    353. <dimen name="dp_334">334dpdimen>
    354. <dimen name="dp_335">335dpdimen>
    355. <dimen name="dp_336">336dpdimen>
    356. <dimen name="dp_337">337dpdimen>
    357. <dimen name="dp_338">338dpdimen>
    358. <dimen name="dp_339">339dpdimen>
    359. <dimen name="dp_340">340dpdimen>
    360. <dimen name="dp_341">341dpdimen>
    361. <dimen name="dp_342">342dpdimen>
    362. <dimen name="dp_343">343dpdimen>
    363. <dimen name="dp_344">344dpdimen>
    364. <dimen name="dp_345">345dpdimen>
    365. <dimen name="dp_346">346dpdimen>
    366. <dimen name="dp_347">347dpdimen>
    367. <dimen name="dp_348">348dpdimen>
    368. <dimen name="dp_349">349dpdimen>
    369. <dimen name="dp_350">350dpdimen>
    370. <dimen name="dp_351">351dpdimen>
    371. <dimen name="dp_352">352dpdimen>
    372. <dimen name="dp_353">353dpdimen>
    373. <dimen name="dp_354">354dpdimen>
    374. <dimen name="dp_355">355dpdimen>
    375. <dimen name="dp_356">356dpdimen>
    376. <dimen name="dp_357">357dpdimen>
    377. <dimen name="dp_358">358dpdimen>
    378. <dimen name="dp_359">359dpdimen>
    379. <dimen name="dp_360">360dpdimen>
    380. <dimen name="dp_365">365dpdimen>
    381. <dimen name="dp_370">370dpdimen>
    382. <dimen name="dp_400">400dpdimen>
    383. <dimen name="dp_410">410dpdimen>
    384. <dimen name="dp_422">422dpdimen>
    385. <dimen name="dp_472">472dpdimen>
    386. <dimen name="dp_500">500dpdimen>
    387. <dimen name="dp_600">600dpdimen>
    388. <dimen name="dp_640">640dpdimen>
    389. <dimen name="dp_720">720dpdimen>
    390. <dimen name="sp_6">6spdimen>
    391. <dimen name="sp_7">7spdimen>
    392. <dimen name="sp_8">8spdimen>
    393. <dimen name="sp_9">9spdimen>
    394. <dimen name="sp_10">10spdimen>
    395. <dimen name="sp_11">11spdimen>
    396. <dimen name="sp_12">12spdimen>
    397. <dimen name="sp_13">13spdimen>
    398. <dimen name="sp_14">14spdimen>
    399. <dimen name="sp_15">15spdimen>
    400. <dimen name="sp_16">16spdimen>
    401. <dimen name="sp_17">17spdimen>
    402. <dimen name="sp_18">18spdimen>
    403. <dimen name="sp_19">19spdimen>
    404. <dimen name="sp_20">20spdimen>
    405. <dimen name="sp_21">21spdimen>
    406. <dimen name="sp_22">22spdimen>
    407. <dimen name="sp_23">23spdimen>
    408. <dimen name="sp_24">24spdimen>
    409. <dimen name="sp_25">25spdimen>
    410. <dimen name="sp_28">28spdimen>
    411. <dimen name="sp_30">30spdimen>
    412. <dimen name="sp_32">32spdimen>
    413. <dimen name="sp_34">34spdimen>
    414. <dimen name="sp_36">36spdimen>
    415. <dimen name="sp_38">38spdimen>
    416. <dimen name="sp_40">40spdimen>
    417. <dimen name="sp_42">42spdimen>
    418. <dimen name="sp_48">48spdimen>
    419. resources>

    3.生成sw限定符

    点击ok后这时会自动重启当前项目,这时你就会看到下面的场景

    到这里就说明你已经配置成功了,不过我们还是要在自定义一些东西

    等你下载插件自动生成SW限定符后会自动生成screenMatch.properties

    打开该文件夹进行一些配置(不配置就跟随系统默认)

    • 4.自定义配置

    这里修改完成后,我尝试关掉该项目重新打开,发现dimens文件并没有发生变化,这里我直接将所有的dimens文件删掉并重新走第二第三步骤,然后就达到想要的效果了,这里温馨提示:修改screenMatch.properties文件后一定要重新操作刷新一下

    约束布局适配 ConstraintLayout

    ConstraintLayout本身的基本属性

    1. android : minHeight = "120dp"
    2. android : minWight = "120dp"
    3. android : maxHeight = "120dp"
    4. android : maxHeight = "120dp"
    控制View最大尺寸和最小尺寸的属性,可以设置到ConstraintLayout上控制ConstraintLayout的尺寸信息
    属性介绍    
    1. app:layout_constaraintstart_toEndof = "parent"
    2. app:layout_constaraintstart_toStartof = "parent"
    3. app:layout_constaraintLeft_toRightof = "parent"
    4. app:layout_constaraintLeft_toLeftof = "parent"
    5. app:layout_constaraintTop_toBttomof = "parent"
    6. app:layout_constaraintTop_toTopof = "parent"
    7. app:layout_constaraintEnd_toStartof = "parent"
    8. app:layout_constaraintEndt_toEndof = "parent"
    9. app:layout_constaraintRight_toLeftof = "parent"
    10. app:layout_constaraintRight_toRightof = "parent"
    11. app:layout_constaraintBottom_toTopof = "parent"
    12. app:layout_constaraintBottom_toBottomof = "parent"

    上面的属性介绍可能看不懂     _ 左侧的自身位置   右侧是目标位置

    例子

    1. app:layout_constaraintTop_toBottomof = "A"
    2. app:layout_constaraintstart_toStartof = "A"
    3. app:layout_constaraintEnd_toEndof = "A"
    4. app:layout_constaraintBottom_toBottomof = "A"

    guidline辅助线   预览时可以看见  跑起来看不见    因为继承View 空实现draw函数

    1. Guideline
    2. orientaion 是控制辅助线方向
    3. layout_constrainGuide_end = 150dp 距离作用距离
    4. 使用layout_constrainGuide = 0.4(百分比)

    Brrier辅助线   相当于屏障

    1. barrienDirection = "end" 同步屏障屏的哪一边
    2. app:constraint_referenced_ids = "userName | password" 哪些控件带屏障

    bias 偏移  改变拉扯力

    1. layout_costrainHorizontal_bias = "0.8" 2个拉扯里 正负
    2. 注意:约束同一条边bias失效

    Group使用他让多个

    控件隐藏

    app:constaraint_referenced_ids = "tv1,tv2,tv3"  告诉它哪个控件隐藏

    线性权重 = 约束链   

    1. ​​app:layout_constrainHorizontal_chainStyle="spread_inside"​:表示水平链式布局的子项会平均分布在链中,并且内部的空白区域会被忽略。
    2. ​​app:layout_constrainHorizontal_chainStyle="spread"​:表示水平链式布局的子项会平均分布在链中,并且所有空白区域都会被均匀地分配到子项之间。
    3. ​​app:layout_constrainHorizontal_chainStyle="packed"​:表示水平链式布局的子项会紧密地排列在链中,空白区域会以最小的方式进行分配

    权重

    app:layout_constraintHorizontal_weight = "1"

    圆形定位  沿着一个View控件指定的半径和角度布局

    1. app:layout_constraintDimensionRatio = "1.1" 中心
    2. app:layout_constraintDimensionRatio = "30" 角度
    3. app:layout_constraintDimensionRatio = "50" 半径

    1. layout_width = "0" wrap包裹内容
    2. app:layout_constrainwidth_default = "spread" 模式
    3. app:layout_constrainWidth_percont ="0.2" 百分比设置大小 占屏幕空间

    约束布局适配

    guidlin  可以通过百分比划分整个屏幕空间,做到某个东西在某个区域里

    当文字大于当前屏幕直接省略不会 超出

    1. layout_witdh = "0dp"
    2. app:layout_constraintwidth_default = "wrap"

    1. app:layout_constraintDimensionRation = "16:9"
    2. app:layout_constraintDimensionRation = "H,16:9" H控制后面的 H = 9

    可能记得不详细 请多谅解       约束布局还是要慢慢使用才能知道具体的功能

  • 相关阅读:
    JAVA JSP javaweb小区物业管理系统源码 小区管理系统 jsp小区物业服务管理系统
    [附源码]计算机毕业设计springboot校园招聘系统设计
    2024上海国际人工智能展(CSITF)“创新驱动发展·科技引领未来”
    Android-ViewPager嵌套使用探究
    【爬虫】Java爬虫爬取某招聘网站招聘信息
    C++ 简易日志类封装
    如何判断BUG是前端BUG还是后端BUG
    一年前端面试打怪升级之路
    SpringBoot 全局事务配置
    Essential C++ 编程基础
  • 原文地址:https://blog.csdn.net/ZJQ990909/article/details/133818791