自定义View之自定义按键圆角边框背景添加点击效果
来源:互联网 发布:cf手游刷武器软件 编辑:程序博客网 时间:2024/05/19 02:24
自定义View之自定义按键圆角边框背景添加点击效果
设置边框可以参考前一篇博客
添加后效果如图
1、新添加了几个属性
<!-- 点击状态 --> <attr name="isChick" format="boolean"/> <!--点击后背景颜色--> <attr name="clickedBgColor" format="color"/> <!--点击后边框颜色--> <attr name="clickedCornerRadiusColor" format="color"/> <!--点击后字体颜色--> <attr name="clickedTextColor" format="color"/>
相应的效果如注释
2、在定义控件中获取设置的属性
isChick = typedArray.getBoolean(R.styleable.BgButton_isChick, false); clickedBgColor = typedArray.getColor(R.styleable.BgButton_clickedBgColor, -1); clickedCornerRadiusColor = typedArray.getColor(R.styleable.BgButton_clickedCornerRadiusColor, -1); textColor = getCurrentTextColor(); clickedTextColor = typedArray.getColor(R.styleable.BgButton_clickedTextColor, -1);
3、在设置点击效果的时候其实主要是用不同颜色的画笔进行绘制控件
if (borderWidth > 0 && borderColor != 0) { paintBorder = new Paint(); if (isChick) { paintBorder.setColor(clickedCornerRadiusColor); } else { paintBorder.setColor(borderColor); } paintBorder.setStyle(Paint.Style.STROKE); paintBorder.setStrokeWidth(borderWidth); paintBorder.setAntiAlias(true); } paintBg = new Paint(); if (isChick) { paintBg.setColor(clickedBgColor); setTextColor(clickedTextColor); } else { paintBg.setColor(bgColor); setTextColor(textColor); } paintBg.setAntiAlias(true); paintBg.setStyle(Paint.Style.FILL);
4、对点击效果后进行重新绘制
@Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { isChick = !isChick; drawBackgroud(isChick); } return super.onTouchEvent(event); } private void drawBackgroud(boolean b) { if (b) { paintBg.setColor(clickedBgColor); if (borderWidth > 0 && borderColor != 0) { paintBorder.setColor(clickedCornerRadiusColor); } setTextColor(clickedTextColor); } else { paintBg.setColor(bgColor); if (borderWidth > 0 && borderColor != 0) { paintBorder.setColor(borderColor); } setTextColor(textColor); } invalidate(); }
最后GitHub链接和使用方法:https://github.com/cc0819/BgButton
阅读全文
0 0
- 自定义View之自定义按键圆角边框背景添加点击效果
- 自定义View之自定义按键圆角边框背景
- Android自定义View之点击效果
- 自定义View圆角边框
- 自定义TextView设置边框与背景颜色添加点击事件,点击更改随机数与背景
- 自定义View为view添加选中边框
- 自定义文本背景,圆角边框
- 自定义View添加点击事件
- iOS 自定义view 是上面文字某区域有点击事件和点击背景效果
- 自定义圆角、圆形、边框View
- 自定义view圆角图片带边框
- iOS Tableable cell 自定义点击背景效果
- 自定义背景边框
- 自定义view系列(3)--给自定义View添加点击事件
- Android之自定义点击效果 .
- 最方便的自定义带点击效果的圆角背景按钮
- 自定义view之倒影效果
- 自定义View之自定义文字闪动效果
- 自己使用的sublime的一些插件以及安装方法,以防日后查阅。
- poj2406 Power Strings(KMP)
- DAY26 正则表达式
- 面试题16—反转链表
- 并发策略之分工原则
- 自定义View之自定义按键圆角边框背景添加点击效果
- :error: The following untracked working tree files would be overwritten by checkout
- fork()创建子进程步骤、函数用法及常见考点(内附fork()过程图)
- Android studio中查看SHA1
- Android之Viewpager+Fragment实现懒加载
- 对于自学新知识自己的套路
- java新手上路(二):奥特曼打怪兽
- C# 取出HTML里面的文字
- Unity shader学习笔记 (四) 分解Shader