Android自定义控件(特效二) 点击屏幕,根据所点击的位置绘制桃心
来源:互联网 发布:qq炫舞卡八音软件 编辑:程序博客网 时间:2024/05/22 14:11
先附GIF一张
思路如下:多次点击屏幕则会绘制多个桃心,所以将这些桃心放到List中。在点击屏幕后调用onTouchEvent,在onTouchEvent里设置桃心的初始状态值,如半径、XY坐标,然后invalidate调用onDraw进行绘制,最后调用Handler来刷新桃心的透明度。
代码如下:
首先在onTouchEvent里设置桃心的初始值
- @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.X = (int) event.getX(); // 所绘制的圆的X坐标
- bean.Y = (int) event.getY(); // 所绘制的圆的Y坐标
- bean.paint = initPaint(bean.alpha);
- list.add(bean);
- break;
- }
- return true;
- }
在添加到list里后,invalidate调用onDraw,来绘制桃心
- path.moveTo(bean.X, bean.Y - 5 * bean.radius);
- // 根据心形函数画图
- for (double j = 0; j <= 2 * Math.PI; j += 0.001) {
- float x = (float) (16 * Math.sin(j) * Math.sin(j) * Math.sin(j));
- float y = (float) (13 * Math.cos(j) - 5 * Math.cos(2 * j) - 2
- * Math.cos(3 * j) - Math.cos(4 * j));
- x *= bean.radius;
- y *= bean.radius;
- x = bean.X - x;
- y = bean.Y - y;
- path.lineTo(x, y);
- }
- canvas.drawPath(path, paint);
最后,调用handler来刷新桃心的半径、透明度
完整Demo:http://download.csdn.NET/detail/qq_18612815/9514091
阅读全文
0 0
- Android自定义控件(特效二) 点击屏幕,根据所点击的位置绘制桃心
- Android自定义控件(特效二) 点击屏幕,根据所点击的位置绘制桃心
- Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环
- Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环
- Android根据屏幕点击位置显示(此处是PopupWindow)
- android view 屏幕的点击位置分析
- Android获取点击屏幕的位置坐标
- android 根据点击屏幕坐标,确定点击的item位子
- Android adb shell 获得点击屏幕的位置坐标
- Android adb shell 获得点击屏幕的位置坐标
- Android adb shell 获得点击屏幕的位置坐标
- 根据点击的位置调整精灵方向(弧度)
- ios获取点击屏幕的位置
- 如何获取点击屏幕的位置
- Android 自定义拼接图片,点击小图位置时,绘制在上层
- Android自定义控件(二)View的绘制
- android屏幕的点击事件
- 点击指定控件的某个位置
- 微信小程序之获取并解密用户数据(获取openId、unionId)
- pyqt下.ui文件转换为对应.py文件的知识整理
- QT的安装和实现简单动画,有源码
- 关于MySQL数据库调优的几点心得
- 设计模式学习—空对象模式(Null Object Design Pattern)
- Android自定义控件(特效二) 点击屏幕,根据所点击的位置绘制桃心
- jQuery源码学习笔记(10)
- rn笔记:(Genymotion)启动rn时,node没启动成功,导致报错unable to load script from assets'index.android.bundle'
- cocos creator 学习(五)
- android中关于点击屏幕,实现破碎的效果的实现
- Python基础之Windows下Python3.x环境搭建
- 文章标题 HDU 2222 : Keywords Search (AC自动机模板)
- Js apply()使用详解
- Kubernets演进