不能有android:background属性,否则自定义属性不生效
MyButton需要手动设置android:background="@null",否则自定义属性设置无效
MyRelativeLayout,MyLinearLayout,MyFrameLayout,MyTextView,MyEditText,MyButton公共属性
| 属性名 | 说明 | 属性类型 | |
|---|---|---|---|
| drawable_normal drawable_press |
设置正常状态背景和press状态背景 | drawable | 覆盖以下所有属性 |
| pressColor | 设置press颜色,设置了点击事件才生效 | color | |
| left_line | 显示左边框 | boolean | |
| top_line | 显示上边框 | boolean | |
| right_line | 显示右边框 | boolean | |
| bottom_line | 显示底边框 | boolean | |
| all_line | 显示所有边框 | boolean | 覆盖上面4个属性 |
| shapeType | 设置shape类型,默认rectangle | rectangle(默认):矩形 oval:椭圆 line:线 |
|
| borderWidth | 边框宽度 | dimension | |
| borderColor | 边框颜色 | color | |
| borderDashWidth | 边框虚线长度 | dimension | |
| borderDashGap | 边框虚线间隔距离 | dimension | |
| solidColor | view填充色(相当于背景色) | color | |
| topLeftRadius | 左上方圆角 | dimension | |
| topRightRadius | 右上方圆角 | dimension | |
| bottomLeftRadius | 左下方圆角 | dimension | |
| bottomRightRadius | 右下方圆角 | dimension | |
| radius | view圆角 | dimension | 覆盖上面4个属性 |
| gradientType | 渐变类型 | linear:线性渐变 radial:放射渐变 sweep:扫描性渐变 |
|
| gradientAngle | 渐变角度 | a0,a45,a90,a135 a180,a225,a270,a315 |
|
| gradientCenterX | 渐变的X轴起始位置 | 范围0~1,默认0.5 | |
| gradientCenterY | 渐变的Y轴起始位置 | 范围0~1,默认0.5 | |
| gradientStartColor | 渐变起始颜色 | color | |
| gradientCenterColor | 渐变中间颜色 | color | |
| gradientEndColor | 渐变结束颜色 | color | |
| gradientRadius | 渐变半径 | gradientType="radial"适用 默认40 |
MyTextView,MyButton,MyCheckBox,MyRadioButton公共属性
| 属性名 | 说明 | 属性类型 |
|---|---|---|
| left_width left_height |
设置drawableLeft宽高,只设置其中一个属性自动适配另外一个属性 | dimension |
| top_width top_height |
设置drawableTop宽高,只设置其中一个属性自动适配另外一个属性 | dimension |
| right_width right_height |
设置drawableRight宽高,只设置其中一个属性自动适配另外一个属性 | dimension |
| bottom_width bottom_height |
设置drawableBottom宽高,只设置其中一个属性自动适配另外一个属性 | dimension |
| MyCheckBox,MyRadioButton | 说明 | 属性类型 |
|---|---|---|
| normal_drawable checked_drawable | 设置normal和check状态的drawable | drawable |
| normal_textColor checked_textColor | 设置normal和check状态的文字颜色 | color |
| drawable_direction | 设置button所在方向left,top,right,bottom 设置此属性需要:android:button="@null" |
| MyEditText | 说明 | 属性类型 |
|---|---|---|
| clearIconDrawable | 设置清除按钮drawable(点击清除内容) | drawable |
| hiddenClearIcon | 设置清除按钮是否隐藏,默认false | boolean |
| clearIcon_width clearIcon_height |
设置清除按钮宽度,只设置其中一个属性自动适配另外一个属性 | dimension |
MyTextView textView=new MyTextView(this);
BaseViewHelper viewHelper = textView.getViewHelper();
//viewHelper.clearAttribute();清除所有属性,按照实际情况使用
viewHelper.setAllLine(true);
viewHelper.setSolidColor(ContextCompat.getColor(this,R.color.white));
viewHelper.setRadius(20);//px
viewHelper.setShapeType(BaseViewHelper.shapeType_rectangle);
viewHelper.complete();//或者textView.complete();
//链式结构
MyLinearLayout linearLayout=new MyLinearLayout(this);
linearLayout.getViewHelper()
//.clearAttribute()
.setAllLine(true)
.setGradientType(BaseViewHelper.gradientType_linear)
.setSolidColor(ContextCompat.getColor(this,R.color.white))
.setRadius(20)//px
.complete();//或者linearLayout.complete();compile 'com.github:fastshape:1.0.4'