高级UI--有趣的水波纹

这篇博客展示了如何在Android中实现水波纹和头像运动的交互效果。通过贝塞尔曲线创建path路径,结合动画使水波纹向右移动,同时详细介绍了头像定位和绘制的方法。提供源码下载链接。
摘要由CSDN通过智能技术生成

先看效果:



一,效果有两个,一个是波纹运动,另外一个就是头像运动(换成小船的图片更有趣哦)
二,实现步骤

1,使用贝塞尔曲线,确定path的路径。
2,绘制path路径,并且开启动画,使向右移动,达到水波纹效果。
3,确定头像的位置
4,绘制头像。

1,绘制波浪线,如图

2,填充区域,如图

3,Region和path相交,得到一个矩形区域

4,当这个矩形区域的左边和右边无限接近时,就可以把它看做一条直线,然后就可以得到中间线和path的相交点,这样就可以确定头像的位置了。




核心代码:

public WaveView(Context context, AttributeSet attrs) {
    super(context, attrs);
    //初始化自定义属性
    initAttrs(context, attrs);
    init();
}


private void init() {
    paint = new Paint();
    paint.setColor(getResources().getColor(R.color.colorPrimary));
    paint.setStyle(Paint.Style.FILL_AND_STROKE);  //填充

    path = new Path();


}

/**
 * 初始化自定义属性
 * @param context
 * @param attrs
 */
private void initAttrs(Context context, AttributeSet attrs) {
    TypedArray a = context.obtainStyledAttributes(attrs, R.style
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值