兼容Android API 2.X的涟漪点击效果

概述:android5.0出现了点击出现Ripple涟漪效果,如果要想兼容低版本的效果,就自定义了一个控件,原理就是在画布上画圆,本控件命名RippleVIew继承RelativeLayout,然后做个圆形,不断增加圆形的半径,来实现涟漪的效果,还算是比较简单的实现方式。

代码实现

1.做圆形Bitmap:

public Bitmap makeCircleBitmap() {
        Bitmap output = Bitmap.createBitmap(getWidth(), getHeight(),
                Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
        canvas.drawARGB(0, 0, 0, 0);
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor((int) rippleColor);
        canvas.drawCircle(x, y, radius, paint);
        return output;
    }

2.在画布上绘画

protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //图片的裁剪区域
        Rect src = new Rect(0, 0, getWidth(), getHeight());
        //屏幕的裁剪区域
        Rect dst = new Rect(0, 0, getWidth(), getHeight());
        //特点的图片区域画在特定的画布区域,这种方式也可以实现放缩的效果
        canvas.drawBitmap(makeCircleBitmap(), src, dst, null);
        invalidate();//刷新画布

3.在activity里实现RippleVIew里定义的接口ICoallBack,实现click和press事件

 public interface ICoallBack {
        public void onClick(View v);
        public void onPress(View v, boolean focus);
 }

下载地址:RippleVIew

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值