android 实现水波纹效果(一)

本文介绍了如何在Android中实现水波纹点击效果,特别是针对低于5.0版本的设备。通过自定义LinearLayout并在dispatchTouchEvent中处理绘制,找到目标视图并记录其覆盖区域,然后在dispatchDraw方法中绘制水波纹,避免被子视图覆盖。源码已提供。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android5.0中,新出了一个控件RippleView,可以实现点击水波纹效果,这个效果看起来十分酷炫,只不过只支持在5.0之上的版本中使用,想要向下兼容,就必须自己想办法了;

自己在网上找了一些资料自己在研究了一下,其实要实现这个效果,本质上就是在控件上面绘制一层颜色,这个很实现就是很简单的绘制,但是总不能每个控件,button,textView等都要自己定义吧,这个样子实在太麻烦了,在翻看了一些文章之后,我决定从LinearLayout入手,只要找到控件所在位置,然后绘制一个水波纹就行了,先上效果图:
这个是效果图

好了,接下来就是关键代码:

 @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:

                //down事件中,开始绘制
                isDraw = true;

                currentRadio = 0;
                //点击的位置,也是水波纹的圆心
                int downX = (int) event.getRawX();
                int downY = (int) event.getRawY();

                centerX = downX;
                centerY = downY;

                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值