android百分比库扩展,支持布局宽高比及子控件宽高比设置,支持布局圆角、圆形及描边,屏幕适配好帮手

    android屏幕碎片化不必多说,众多android程序猿们深受困扰,那么就说说这个库可以解决哪些适配中遇到的问题:

老司机直入项目地址:https://github.com/liu-xiao-dong/PercentLayoutExpand

1,当前页面有全屏需求:
举个本人项目中的栗子
android百分比库扩展,支持布局宽高比及子控件宽高比设置,支持布局圆角、圆形及描边,屏幕适配好帮手_第1张图片
此页要求在所有手机上都能满屏展示,如果只用dp想来是无法达到完美适配的,此时本库就可以较好解决此适配问题,我将我的使用思路图文说明下,先上分解图
android百分比库扩展,支持布局宽高比及子控件宽高比设置,支持布局圆角、圆形及描边,屏幕适配好帮手_第2张图片
内容浮层用PercentLinerLayout设置为marth_parent,方向vertical,内部子控件可直接使用View或再次包裹百分比布局,比如,“7天基础冥想训练”可直接使用TextView,宽度marth_parent高度使用百分比属性,内部android:gravity=”center_horizontal|bottom”,而绿色圆形icon处可有两种处理方案:一种是以屏幕宽度为基准设置宽度百分比,这样需要外部在包一层PercentRelativeLayout,此时内部icon变化并不影响总体比例,
另一种则直接使用ImageView设置高度百分比,宽高比1:1,同时marginTop也使用百分比,也就是layout_marginTopPercentY属性。

最难的部分是课时列表处理,需要在任何屏幕上都保持7课显示,而且可能课时多于7课时需要滑动,所以使用RecyclerView,RecyclerView的宽度通过百分比设置高度则需要设置宽度/7,内部item则使用高度match_perent宽度设置为1:1,,这样就可以达到要求;
此处逼逼了半天就只是说明全屏要求时的适配,下面讲讲RecyclerView内部item一般适配,
老规矩上图分析:
android百分比库扩展,支持布局宽高比及子控件宽高比设置,支持布局圆角、圆形及描边,屏幕适配好帮手_第3张图片
一般item适配较为简单,内部保证图片不变形,内部控件相对位置正常,图片如果想保证不变形且可以完全显示,则可以使用宽高比设置ImageView,如果用dp写死高度,在有些情况会变形,比如同样是1080*1920分辨率,屏幕5.0寸和5.5寸上,dp与px之间的系数会发生改变,因为宽度如果为match_parent,那宽度在5.0和5.5上都是屏幕宽度-margin值,但是高度如果写死100dp,那么在5.0上高度为100*3,而在5.5上则为100*2.625(dp与px换算还不清楚的同学请自行百度),这样在两个手机上ImageView的宽高比不一样了, 如果ScaleType设置FitXY的话就会导致变形,当然ScaleType使用centerCrop不会变行,但是会切掉图片边缘,导致显示不全,所以此时使用布局宽高比解决此问题最好不过,使用Fresco的宽高比也可以解决,原理其实是一样的。
接下来再说说本库的圆角、圆形、描边功能
在上图中,需要底部progressBar圆角与布局契合,此时如果在ImageView和progressBar上分别设置圆角,很难做到契合,但是如果使用布局的圆角功能则可以完美解决,所以本库中也添加了此功能,

结语
主要功能介绍就这些,介于水平有限,如有错误欢迎指正。具体使用请移驾github,有详细的使用方式。

项目地址:https://github.com/liu-xiao-dong/PercentLayoutExpand

你可能感兴趣的:(开发技巧)