android 自定义Button,抛弃写shape文件
来源:互联网 发布:安卓去广告软件 编辑:程序博客网 时间:2024/05/18 00:14
前言
- 在日常的android开发当中,按钮是必不可少控件。但是如果要实现下面的效果恐怕写shape文件都要写的头晕
w(゚Д゚)ww(゚Д゚)w,所以为了以后的开发,我们就简单的封装下。
代码块
很简单我们通过GradientDrawable 类就可以实现啦。
public class ButtonStyle extends Button { GradientDrawable gradientDrawable; //按下颜色 private int pressedColor=Color.GRAY; //当前颜色 private int normalColor=Color.RED; //当前圆角 private float currCorner=5; //四边边框宽度 private float strokeWidth=0; //四边边框颜色 private int strokeColor; boolean isTouchPass = true; public ButtonStyle(Context context) { this(context, null); } public ButtonStyle(Context context, AttributeSet attrs) { this(context, attrs, 0); } public ButtonStyle(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { setGravity(Gravity.CENTER); gradientDrawable = new GradientDrawable(); //设置按钮颜色 gradientDrawable.setColor(normalColor); //设置按钮的边框宽度 gradientDrawable.setStroke((int) strokeWidth, strokeColor); //设置按钮圆角大小 gradientDrawable.setCornerRadius(currCorner); //设置按钮点击之后的颜色更换 setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent event) { setBackgroundDrawable(gradientDrawable); return setColor(event.getAction()); } }); setBackgroundDrawable(gradientDrawable); } //处理按钮点击事件无效 @Override public void setOnClickListener(OnClickListener l) { super.setOnClickListener(l); isTouchPass = false; } //处理按下去的颜色 public boolean setColor(int action) { switch (action) { case MotionEvent.ACTION_DOWN: gradientDrawable.setColor(pressedColor); break; case MotionEvent.ACTION_UP: gradientDrawable.setColor(normalColor); break; case MotionEvent.ACTION_CANCEL: gradientDrawable.setColor(normalColor); break; } return isTouchPass; }}
这样就完成了!很简单是吧 (〃` 3′〃) (〃` 3′〃)
具体的可以看我自己封装的能给个start那是最好啦 23333
Dome –> https://github.com/laishujie/ButtonStyle
阅读全文
1 0
- android 自定义Button,抛弃写shape文件
- android 自定义button shape
- Android shape自定义button样式
- Android shape自定义button样式
- Android selector自定义shape的button样式
- 有shape自定义button样式
- 使用shape自定义button状态
- 使用shape自定义button状态
- 自定义背景文件,android:shape的使用!
- 自定义背景文件,android:shape的使用!
- 自定义背景文件,android:shape的使用!
- Android Button特效selector+shape
- Android Button特效selector+shape
- Android Button的Selector+Shape
- 自定义Button形状(圆形、椭圆) shape
- Android 自定义背景文件,android:shape的用法
- Android里drawable文件写shape的总结
- Android 自定义shape selector
- 让linux也可以使用pbcopy
- Vert.x有毛病?
- spring动态多数据源实例Demo
- 数据结构----二叉树的遍历
- webrtc 音频视频数据流流程图
- android 自定义Button,抛弃写shape文件
- 数据结构----栈和队列的综合应用
- 单机asm和集群asm 的不同之处.
- 轻松自动化---selenium-webdriver(python) (一)
- 注解的使用
- 枚举的用法
- 常用的git命令清单
- linux下部署rabbitmq和web项目和jar项目
- volatile