Android特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单


这次做的东西呢,和上篇有点类似,就是用比较简单的逻辑思路去实现一些比较好玩的特效,最近也是比较忙,所以博客更新的速度还得看时间去推演,但是也能保证一周三更的样子,现在也还是以小功能,或者说是一些小入门级别的博客为主,我也不算是什么很厉害的人,很多细节的支持处理的仍然还是不到位,所以也是一直在弥补,话不多说,来看看今天的效果

实现起来很简单吧,那我们就来看一下他是怎么实现的咯!

OnclickRuning

package com.lgl.onclickruning;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;/*** 点击水波纹涟漪动画效果* * @author LGL* */
public class Runing extends View {// 画笔private Paint mPaint;// 内圆宽度private int strokeWidth;// 圆心xprivate int cx;// 圆心yprivate int cy;// 半径private int radius;// Handler消息private static final int FLUSH = 0;public Runing(Context context, AttributeSet attrs) {super(context, attrs);init();}private void init() {// 初始化画笔mPaint = new Paint();// 抗锯齿mPaint.setAntiAlias(true);// 设置颜色mPaint.setColor(Color.BLUE);// 设置空心mPaint.setStyle(Style.STROKE);// 设置内圆的宽度mPaint.setStrokeWidth(strokeWidth);// 设置透明度 0-255mPaint.setAlpha(255);// 初始值strokeWidth = 0;radius = 0;}/*** 绘制*/@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// 绘制圆环canvas.drawCircle(cx, cy, radius, mPaint);}/*** 触摸事件*/@Overridepublic boolean onTouchEvent(MotionEvent event) {// 判断手势按下和抬起switch (event.getAction()) {case MotionEvent.ACTION_DOWN:/*** 按下去开始画圆,也就是起涟漪,所以我们首先得获取到按下的坐标,事实上,我们要做这样操作的开发,都必须先提前拿到该有的坐标*/cx = (int) event.getX();cy = (int) event.getY();Log.i("坐标", "圆心x:" + cx + "圆心y:" + cy);break;}// 初始化init();// 发送handler.sendEmptyMessage(FLUSH);return true;}/*** 刷新状态*/private void flush() {// 半径每次+10radius += 10;// 线条的宽度每次都是半径的四分之一strokeWidth = radius / 4;// 重新设置给画笔mPaint.setStrokeWidth(strokeWidth);// 颜色渐变,每次减少20的色值int nextAlpha = mPaint.getAlpha() - 20;// 避免等于负数if (nextAlpha < 20) {// 直接设置为透明nextAlpha = 0;}// 继续重新设置给画笔mPaint.setAlpha(nextAlpha);}private Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case FLUSH:// 更改参数状态flush();// 刷新 执行我们的绘制方法invalidate();// 继续验证透明度,只要不为0就一直发送,直到透明if (mPaint.getAlpha() != 0) {handler.sendEmptyMessageDelayed(FLUSH, 100);}break;}}};
}

layout_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" ><com.lgl.onclickruning.Runingandroid:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>

代码其实很简单,我们简单的逻辑就可以实现了,但是别小看了这个思维,你可以用这个逻辑去实现更多有趣的特效,这里就期待你的挖掘了,嘻嘻

Demo下载地址:http://download.csdn.net/detail/qq_26787115/9433534

Android特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单相关推荐

  1. android水波纹动画制作,Framer之事件 | 如何制作安卓点击水波纹效果?

    之前的 Framer 教程都是按照个人喜好去写的,没有按照难易程度形成系列.为了让大家能更好地入门,我准备由易到难写一个系列教程,尽量保持在每周一篇的频率. 导读:事件是 Framer 中的一个重要概 ...

  2. html实现鼠标移动波纹效果,js实现拖动滑块和点击水波纹效果

    本篇文章就给大家介绍js实现拖动滑块效果和点击水波纹效果的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 拖动滑块效果: 先看看效果图: Document input[type ...

  3. Flutter 点击水波纹 效果

    FlatButton 原本已经包含了 点击水波纹 效果 不过目前已经弃用,由TextButton 代替,但 TextButton 的效果感觉没有 FlatButton 的好,另外 MaterialBu ...

  4. android水波纹点击动画,android 控件点击水波纹效果的几种方案

    目前我所知道的至少有三种可以实现点击水波纹的效果 第一种:安卓自带的方法 在安卓中有自带的一种属性,可以实现水波纹的效果,就是在所需要点击的控件属性加上如下代码: android:background ...

  5. 点击水波纹效果html5,使用CSS实现逼真的水波纹点击效果

    这篇文章特别介绍如何使用CSS来完成水波纹的效果. div的层层叠叠 虽然webkit具有遮罩的能力(webkit mask),不过webkit虽然强大,但在跨浏览器上总是它的罩门,况且在性能上也是往 ...

  6. android 辐射动画_Android仿微信雷达辐射搜索好友(逻辑清晰实现简单)

    不知不觉这个春节也已经过完了,遗憾家里没网,没能及时给大家送上祝福,今天回到深圳,明天就要上班了,小伙伴们是不是和我一样呢?今天讲的是一个大家都见过的动画,雷达搜索好友嘛,原理也十分的简单,你看完我的 ...

  7. Flutter TabBar 标签栏背景颜色、点击水波纹颜色配置

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注 [x2] ...

  8. html5 水波式按钮_css3+jQuery实现按钮水波纹效果

    水波纹按钮 /*自定义按钮样式*/ .btns{ height: 30px; line-height: 30px; text-align: center; width: 200px; color: # ...

  9. css波纹波动效果,CSS 冲击波(水波纹)效果

    实现冲击波--数学知识很重要 *{ margin:0; padding:0; box-sizing:border-box; } html,body{ font-family:"微软雅黑&qu ...

  10. Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View...

    Android特效专辑(十二)--仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View 先来看看这个效果 这是我的在Only上添加的效果,说实话,Only现在都还只是半成品,台面都上不了,怪自己技术 ...

最新文章

  1. 给创新工场求职者的一封信
  2. 7-41 PAT排名汇总 (25 分)(详解+思路+重写sort函数)兄弟们冲呀呀呀呀呀呀呀
  3. 深度学习笔记(31) 迁移与增强
  4. 互联网“收割”网瘾父母
  5. Sky公司的爱丁堡数据中心的能源效率纳入欧盟能效标准
  6. oracle 11g PL/SQL Programming学习三
  7. 190816每日一句
  8. 高级软件工程2017第2次作业
  9. 台式计算机怎么安装无线网卡,台式机用无线网卡,小编教你台式机怎么用无线网卡...
  10. 不同机构的自动驾驶专利分析报告解读
  11. qt qml 界面程序 适配4K屏幕 简单方法
  12. 网络项目实践与设备管理教程-毛正标
  13. oracle 11g 连接远程服务器 数据库
  14. Trigger与Flip-Flop两种‘触发器’的区别
  15. 众昂矿业:含氟聚合物被广泛运用于新能源锂电池生产
  16. 讲个笑话,我工作3年天天人肉提数,还不如一个应届生!
  17. fanuc机器人刷机教程_FANUC机器人中文简易教程
  18. LoadRunner出现error问题及解决方法总结
  19. 1到20 阶乘表(防止溢出)
  20. CADe_SIMu V1.0.0.1仿真软件分享

热门文章

  1. 如何购买腾讯云学生服务器
  2. AM3352上移植sqlite3数据库
  3. xp计算机共享能否指定用户,XP怎么设置局域网共享?
  4. 如何更电计算机共享名称,电脑网络共享设置
  5. 两万字长文:聊聊程序人生
  6. C#读取Excel文件(*.xls)|*.xls(2种方法)
  7. 《python3网络爬虫开发实战》学习笔记:pyspider报错Exception: HTTP 599: SSL certificate problem...
  8. WordPress优化教程让WordPress打开速度更快
  9. 两个小故事告诉你静下来的力量
  10. pdf文件如何在线转换为jpg图片 1