Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环
来源:互联网 发布:低价已备案域名 编辑:程序博客网 时间:2024/05/22 15:16
之前在三星手机上看到点击屏幕后出现水波的特效,所以尝试着写了个类似的效果
实现自定义一个View,并实现构造方法
<span style="font-size:14px;"><span style="color:#000000;">public class MyView extends View { public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub }}</span></span>
如果要绘制圆环,则需要设置圆环的半径、描边宽度(如果弄填充满的则不需要)、X和Y的坐标,因为点击屏幕出现圆环后还需要消失,所以还要加上透明度
那么我们新建一个Bean,去实现这些
public class MyBean { int alpha; // 透明度 int X; // X坐标 int Y; // Y坐标 float width; // 描边宽度 float radius; // 半径 Paint paint; // 画笔}
接下来就是获取点击屏幕后的事件,思路很明确,点击屏幕后,首先设置绘制的圆的半径为0,透明度为最大值255,描边宽度这里按个人喜好随意设置
<span style="font-size:14px;color:#000000;">@Override public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 点击屏幕后 半径设为0,alpha设置为255 MyBean bean = new MyBean(); bean.radius = 0; // 点击后 半径先设为0 bean.alpha = MaxAlpha; // alpha设为最大值 255 bean.width = bean.radius / 8; // 描边宽度 这个随意 bean.X = (int) event.getX(); // 所绘制的圆的X坐标 bean.Y = (int) event.getY(); // 所绘制的圆的Y坐标 bean.paint = initPaint(bean.alpha, bean.width); break; } return true; }</span>
设置完属性后,交给handler去绘制界面,每过X毫秒后,绘制的圆的半径+N,透明度-M
<span style="color:#000000;">bean.radius += 5;// 半径每次+5 bean.alpha -= 10;// 透明度每次减10 if (bean.alpha < 0) { // 透明度小雨0的时候 赋为0 bean.alpha = 0; } bean.width = bean.radius / 8; // 描边宽度设置为半径的1/4 bean.paint.setAlpha(bean.alpha); bean.paint.setStrokeWidth(bean.width);</span>
至此,我们所有的主要代码已实现
附Demo地址:http://download.csdn.net/detail/qq_18612815/9511652
1 0
- Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环
- Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环
- Android自定义控件(特效二) 点击屏幕,根据所点击的位置绘制桃心
- Android自定义控件(特效二) 点击屏幕,根据所点击的位置绘制桃心
- Android根据屏幕点击位置显示(此处是PopupWindow)
- android view 屏幕的点击位置分析
- Android获取点击屏幕的位置坐标
- android 根据点击屏幕坐标,确定点击的item位子
- Android圆环形自定义进度条控件的绘制
- 自定义圆环点击不同位置有不同效果
- Android adb shell 获得点击屏幕的位置坐标
- Android adb shell 获得点击屏幕的位置坐标
- Android adb shell 获得点击屏幕的位置坐标
- 根据点击的位置调整精灵方向(弧度)
- ios获取点击屏幕的位置
- 如何获取点击屏幕的位置
- Android自定义View --- 绘制圆环
- Android 自定义拼接图片,点击小图位置时,绘制在上层
- 史上最简单的C语言链表实现,没有之一
- redis学习笔记(7)---压缩字典zipmap
- 完全背包 2016.5.8
- 中文分词工具Jieba
- 解决安卓编译 the 64K Reference Limit
- Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环
- matlab打开和生成使用.p文件和exe文件
- linux下ffmpeg安装
- cocos2dx 3.10 读取加密压缩ZIP文件
- SQLite可视化管理工具汇总
- 欢迎使用CSDN-markdown编辑器
- 第十一周实践项目1.1-点-圆-圆柱类族的设计
- Caffe利用测试好的模型测试图片以及每层的可视化
- 织梦dedecms安装过程中遇到的问题:wamp无法正常启动等