Android特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单
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特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单相关推荐
- android水波纹动画制作,Framer之事件 | 如何制作安卓点击水波纹效果?
之前的 Framer 教程都是按照个人喜好去写的,没有按照难易程度形成系列.为了让大家能更好地入门,我准备由易到难写一个系列教程,尽量保持在每周一篇的频率. 导读:事件是 Framer 中的一个重要概 ...
- html实现鼠标移动波纹效果,js实现拖动滑块和点击水波纹效果
本篇文章就给大家介绍js实现拖动滑块效果和点击水波纹效果的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 拖动滑块效果: 先看看效果图: Document input[type ...
- Flutter 点击水波纹 效果
FlatButton 原本已经包含了 点击水波纹 效果 不过目前已经弃用,由TextButton 代替,但 TextButton 的效果感觉没有 FlatButton 的好,另外 MaterialBu ...
- android水波纹点击动画,android 控件点击水波纹效果的几种方案
目前我所知道的至少有三种可以实现点击水波纹的效果 第一种:安卓自带的方法 在安卓中有自带的一种属性,可以实现水波纹的效果,就是在所需要点击的控件属性加上如下代码: android:background ...
- 点击水波纹效果html5,使用CSS实现逼真的水波纹点击效果
这篇文章特别介绍如何使用CSS来完成水波纹的效果. div的层层叠叠 虽然webkit具有遮罩的能力(webkit mask),不过webkit虽然强大,但在跨浏览器上总是它的罩门,况且在性能上也是往 ...
- android 辐射动画_Android仿微信雷达辐射搜索好友(逻辑清晰实现简单)
不知不觉这个春节也已经过完了,遗憾家里没网,没能及时给大家送上祝福,今天回到深圳,明天就要上班了,小伙伴们是不是和我一样呢?今天讲的是一个大家都见过的动画,雷达搜索好友嘛,原理也十分的简单,你看完我的 ...
- Flutter TabBar 标签栏背景颜色、点击水波纹颜色配置
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注 [x2] ...
- html5 水波式按钮_css3+jQuery实现按钮水波纹效果
水波纹按钮 /*自定义按钮样式*/ .btns{ height: 30px; line-height: 30px; text-align: center; width: 200px; color: # ...
- css波纹波动效果,CSS 冲击波(水波纹)效果
实现冲击波--数学知识很重要 *{ margin:0; padding:0; box-sizing:border-box; } html,body{ font-family:"微软雅黑&qu ...
- Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View...
Android特效专辑(十二)--仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View 先来看看这个效果 这是我的在Only上添加的效果,说实话,Only现在都还只是半成品,台面都上不了,怪自己技术 ...
最新文章
- 给创新工场求职者的一封信
- 7-41 PAT排名汇总 (25 分)(详解+思路+重写sort函数)兄弟们冲呀呀呀呀呀呀呀
- 深度学习笔记(31) 迁移与增强
- 互联网“收割”网瘾父母
- Sky公司的爱丁堡数据中心的能源效率纳入欧盟能效标准
- oracle 11g PL/SQL Programming学习三
- 190816每日一句
- 高级软件工程2017第2次作业
- 台式计算机怎么安装无线网卡,台式机用无线网卡,小编教你台式机怎么用无线网卡...
- 不同机构的自动驾驶专利分析报告解读
- qt qml 界面程序 适配4K屏幕 简单方法
- 网络项目实践与设备管理教程-毛正标
- oracle 11g 连接远程服务器 数据库
- Trigger与Flip-Flop两种‘触发器’的区别
- 众昂矿业:含氟聚合物被广泛运用于新能源锂电池生产
- 讲个笑话,我工作3年天天人肉提数,还不如一个应届生!
- fanuc机器人刷机教程_FANUC机器人中文简易教程
- LoadRunner出现error问题及解决方法总结
- 1到20 阶乘表(防止溢出)
- CADe_SIMu V1.0.0.1仿真软件分享
热门文章
- 如何购买腾讯云学生服务器
- AM3352上移植sqlite3数据库
- xp计算机共享能否指定用户,XP怎么设置局域网共享?
- 如何更电计算机共享名称,电脑网络共享设置
- 两万字长文:聊聊程序人生
- C#读取Excel文件(*.xls)|*.xls(2种方法)
- 《python3网络爬虫开发实战》学习笔记:pyspider报错Exception: HTTP 599: SSL certificate problem...
- WordPress优化教程让WordPress打开速度更快
- 两个小故事告诉你静下来的力量
- pdf文件如何在线转换为jpg图片 1