继承基础控件 1.代替 selector 直接设置 xml 属性实现圆形,圆角,某一方向圆角 2.各个 state 状态背景/边框/文字变色

编程入门 行业动态 更新时间:2024-10-25 02:19:49

继承基础控件 1.代替 selector 直接设置 xml 属性实现圆形,<a href=https://www.elefans.com/category/jswz/34/1767438.html style=圆角,某一方向圆角 2.各个 state 状态背景/边框/文字变色"/>

继承基础控件 1.代替 selector 直接设置 xml 属性实现圆形,圆角,某一方向圆角 2.各个 state 状态背景/边框/文字变色

RWidgetHelper

项目地址:RuffianZhong/RWidgetHelper 

简介:继承基础控件 1.代替 selector 直接设置 xml 属性实现圆形,圆角,某一方向圆角 2.各个 state 状态背景/边框/文字变色

更多:作者   提 Bug   

标签:

 

欢迎使用 RWidgetHelper

宗旨:专治原生控件各种不服

目标:Android UI 快速开发

说明

需求:Android UI 开发常用:圆角,边框,Gradient 背景渐变,控件 State 各个状态 UI 样式

普通解决方案缺点:代码冗余,复用性差,自由度低

RWidgetHelper 优点:优化代码,简化使用,快速开发

简介

通过继承原生控件,设置自定义属性,解决常用 Selector,Gradient,Shape 等功能原生控件都可实现 **基础功能** ,针对具体控件还有 **个性功能**

基础功能

功能属性值可用 State 状态特性
圆角颜色默认/按下/不可用四周圆角/单个方向圆角
边框宽度数值默认/按下/不可用实线/虚线边框
边框颜色颜色默认/按下/不可用实线/虚线边框
背景颜色/颜色数组/drawable默认/按下/不可用纯色/渐变/Drawable

属性介绍

属性说明
corner_radius圆角 四周 >=正方形宽度/2 实现圆形
corner_radius_top_left圆角 左上
corner_radius_top_right圆角 右上
corner_radius_bottom_left圆角 左下
corner_radius_bottom_right圆角 右下
border_dash_width虚线边框 宽度
border_dash_gap虚线边框 间隔
border_width_normal边框宽度 默认
border_width_pressed边框宽度 按下
border_width_unable边框宽度 不可点击
border_width_checked边框宽度 选中
border_color_normal边框颜色 默认
border_color_pressed边框颜色 按下
border_color_unable边框颜色 不可点击
border_color_checked边框颜色 选中
background_normal背景 默认
background_pressed背景 按下
background_unable背景 不可点击
background_checked背景 选中
gradient_orientation渐变的方向 参考 GradientDrawable.Orientation:TOP_BOTTOM,TR_BL...
gradient_type渐变的样式 linear 线性,radial 径向,sweep 扫描式 默认:linear
gradient_radius渐变半径 默认:(宽或高最小值)/ 2
gradient_centerX渐变中心点 X 坐标(0.0-1.0) 0.5 表示中间 默认:0.5
gradient_centerY渐变中心点 Y 坐标(0.0-1.0) 0.5 表示中间 默认:0.5
 1.background_xxx         纯色   渐变   drawable纯色:   颜色值               app:background_normal="#74EBD5"渐变:   颜色数组 >=2 个       app:background_normal="@array/@colorArray"drawable: 资源图片          app:background_normal="@mipmap/@drawable"2.自定义属性对原生属性无效例如: `app:corner_radius="10dp"` 搭配 `app:background_normal="#74EBD5"` 而不是`background="#74EBD5"`

示例 xml

        <com.ruffian.library.widget.RViewxmlns:app=""android:layout_width="100dp"android:layout_height="100dp"//背景各个状态,支持:纯颜色   渐变   drawableapp:background_normal="#3F51B5"app:background_pressed="@array/color_array"app:background_unable="@mipmap/icon_unable"app:background_checked="@mipmap/icon_checked"//边框颜色app:border_color_normal="#FF4081"app:border_color_pressed="#3F51B5"app:border_color_unable="#c3c3c3"app:border_color_checked="#c3c3c3"//边框宽度app:border_width_normal="3dp"app:border_width_pressed="3dp"app:border_width_unable="3dp"app:border_width_checked="3dp"//虚线边框 1.虚线边框宽度 2.虚线间隔app:border_dash_width="10dp"app:border_dash_gap="4dp"//圆角度数 超过 1/2 为圆形 1.四周统一值 2.四个方向各个值app:corner_radius="10dp"app:corner_radius_top_left="10dp"app:corner_radius_bottom_left="15dp"app:corner_radius_bottom_right="20dp"app:corner_radius_top_right="25dp"//渐变设置  background_xx 设置为颜色数组时有效(@array/array_color)app:gradient_radius="100dp"app:gradient_centerX="0.5"app:gradient_centerY="0.5"app:gradient_type="linear"app:gradient_orientation="LEFT_RIGHT"/>

示例 java

            RView view = (RView) findViewById(R.id.view);//获取 HelperRBaseHelper helper = view.getHelper();helper.setBackgroundColorNormal(getResources().getColor(R.color.blue)).setBorderColorNormal(getResources().getColor(R.color.red)).setBorderWidthNormal(12).setCornerRadius(25);

效果图

     

更多推荐

继承基础控件 1.代替 selector 直接设置 xml 属性实现圆形,圆角,某一方向圆角 2.各个 state 状态背景/边框/文字变色

本文发布于:2024-03-04 16:19:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1709771.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:圆角   边框   控件   圆形   属性

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!