开发过程中Drawable xml
文件膨胀问题
开发过程中,为了实现UX设计的好看的效果,通常避免不了去写很多的Drawable xml
文件。比如: 圆角Shape
, 渐变
,Selector
等等。由于UX效果复杂多变,UI元素的尺寸形状必定会存在很多差异,所以就要编写很多Drawable xml
文件去实现效果。加之多个开发人员并行开发过程中,如果没有较强的文件命名规定约束,其他人也会加入相同的Drawable xml
文件。导致越来越多的xml文件加入到项目中,不仅会增加应用包体积,也不利于后续复用。
通常解决方案
1.通常的解决方案是自定义View
代替,用代码去绘制相应效果。但是不能保证代码实现的效率,且常用的View较多,挨个实现自定义View较大。
2.约定文件命名,保证同样的Drawable xml
只能存在一份,这样只能避免冗余的Drawable xml
存在,并不能减少必要的Drawable文件
的生成。况且,没有程序去约束,光靠人去遵循约定是不可靠的。
XWidget解决方案
XWidget
提供丰富的"自定View"
,且基本包含常用的Drawable
属性。虽然XWidget
也是自定义View,但是其只是作为一个载体,真正绘制是和我们写的Drawable xml
原理一样,用自定义属性构造出对应的GradientDrawable
or StateListDrawable
对象,设置到View中。这样的实现方案既保证了绘制时的性能,又能够在布局中高度定制化,实现复杂的UI效果。
支持的控件
XButton, XConstraintLayout, XEditText, XFrameLayout, XImageView, XLinearLayout, XRelativeLayout, XTextView, XCheckBox, XView, XRadioButton
…