android 炫酷特效,Android 特效之炫酷水波纹动画
效果图
示例代码
1.初始化画笔
public WaveView(Context context, AttributeSet attrs) {
super(context, attrs);
mPath = new Path();
mPaint = new Paint();
mPaint.setColor(Color.parseColor("#FF2877DD"));
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
//随波摇的头像
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
mBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.love, options);
}
2.绘制水波纹
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPath.reset();
int halfWaveLen = mItemWaveLength / 2;
mPath.moveTo(-mItemWaveLength + dx, originY);
int i = -mItemWaveLength;
for (; i <= getWidth() + mItemWaveLength; i += mItemWaveLength) {
mPath.rQuadTo(halfWaveLen / 2, -100, halfWaveLen, 0);
mPath.rQuadTo(halfWaveLen / 2, 100, halfWaveLen, 0);
}
mPath.lineTo(getWidth(), getHeight());
mPath.lineTo(0, getHeight());
mPath.close();
canvas.drawPath(mPath, mPaint);
mRegion = new Region();
float left = getWidth() / 2;
Region clip = new Region((int) (left - 0.01), 0, (int) left, getHeight() * 2);
mRegion.setPath(mPath, clip);
Rect bounds = mRegion.getBounds();
canvas.drawBitmap(mBitmap, bounds.left - mBitmap.getWidth() / 2, bounds.top - mBitmap.getHeight(), mPaint);
}
3.开启动画实现平移
public void startAnim() {
animator = ValueAnimator.ofInt(0, mItemWaveLength);
animator.setDuration(2800);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.setInterpolator(new LinearInterpolator());
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
dx = (int) animation.getAnimatedValue();
postInvalidate();
}
});
animator.start();
}
android 炫酷特效,Android 特效之炫酷水波纹动画相关推荐
- Android自定义水波纹动画Layout
Android自定义水波纹动画Layout 源码是双11的时候就写好了,但是我觉得当天发不太好,所以推迟了几天,没想到过了双11女友就变成了前女友,桑心.唉不说了,来看看代码吧. 展示效果 Hi前辈 ...
- android曲线水波纹录音动画,Android-贝塞尔曲线实现水波纹动画
Android 系统api提供了quadTo和rQuadTo实现二阶贝塞尔曲线,三阶贝塞尔曲线在这不做阐述,只不过是两个控制点. 效果图 首先看张二阶贝赛尔的曲线 Path path = new Pa ...
- Android S 指纹解锁后的水波纹动画
记录一下bug 由于测试人员对比了R和S的行为,还有Google Pixel6的行为都没有指纹解锁后的蓝色水波纹动画,所以寻找了好久才发现在Android S的SystemUI上多了一个类-AuthR ...
- 震惊!原来Android OpenGL ES可以这样用,实现 (水波纹)涟漪效果超惊艳!
用几行代码实现惊艳的特效. 作者:字节流动 链接:https://juejin.im/post/5ed9c9445188254344768bd6 水波纹效果原理 最近一个做视频滤镜的朋友,让我给他做一 ...
- android 自定义菜单栏,GitHub - earthWo/AndroidBottomNavigation: android 底部菜单栏,自定义样式,自定义菜单数量,添加滚动动画和水波纹动画...
AndroidBottomNavigation 截图 使用方法 gradle: compile 'com.whitelife.library:library:1.0.1' maven: com.whi ...
- Android百度地图水波纹动画,高德地图实现水波纹扩散
功能修改,要求在地图上有个类似雷达的水波纹扩散的动画,通过大半天时间的研究.查找,终于完成了这项任务,话不多说,下面直接贴出代码,供有需要的兄弟参考, 1.首先在地图上画个圆如下图 2.新建个JS / ...
- Android 特效之炫酷水波纹动画
效果图 示例代码 1.初始化画笔 public WaveView(Context context, AttributeSet attrs) {super(context, attrs);mPath = ...
- android自定义控件几种,Android 自定义View一个控件搞定多种水波纹涟漪扩散效果 - CSDN博客...
效果图 实现思路 这个效果实现起来并不难,重要的是思路 此View满足了多种水波纹涟漪扩散效果,这要求它能满足很多的变化 根据上面的样式,可以看出此View需要满足以下变化 圆圈从中心可循环向外扩散 ...
- android水波纹动画制作,Framer之事件 | 如何制作安卓点击水波纹效果?
之前的 Framer 教程都是按照个人喜好去写的,没有按照难易程度形成系列.为了让大家能更好地入门,我准备由易到难写一个系列教程,尽量保持在每周一篇的频率. 导读:事件是 Framer 中的一个重要概 ...
最新文章
- mn之间的回文数c语言,c语言描述回文数的三种算法
- eix安装_Windwos U盘PE制作与系统安装
- 交叉编译_Golang交叉编译
- Spark初识-Spark与Hadoop的比较
- 1698 -Access denied for user 'root@xxxx'
- x86 Assembly Guide
- Docker集群的创建与管理
- Linux 定时任务 Crontab
- 《算法导论》读书笔记之第3章 函数的增长
- java中复制图片_2017.5.3 java中 复制图片的4种方式(copy图片只能用字节流对象)...
- 水电缴费系统php源码_水电缴费管理系统(示例代码)
- 如何把手机证件照压缩到15KB?手机压缩图片方法
- Java web项目如何在服务器上跑起来(有源码)
- 【软件质量】问题与保证谈论
- usb触摸屏驱动移植
- 用django实现一个资产管理的系统
- android opengl 百度地图,androidsdk | 百度地图API SDK
- java 线程 异常中断_java多线程并发之旅-19-InterruptedException 中断异常处理及中断机制...
- Swift SnapKit布局注意事项
- 创维酷开电视(coocaa tv)应用安装成功,设备重启后应用莫名消失的问题