Android 随点击事件设置闪烁动画

哈喽,哈喽! 大家好~  小泽老师! 哈哈哈  今天 研究了一下ImageView的闪烁动画。

控件闪烁,其实就是控制控件的透明度,从可见到逐渐不可见,再逐渐到可见,一直反复。

因此,要想实现控件闪烁,只需要使用android中的alpha动画即可。

开启闪烁,代码如下:

// 0.1f  和 1.0f 表示 从透明度为 0.1f 开始 到 1.0f 进行变化
AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.1f, 1.0f);

// 设置动画300毫秒
alphaAnimation1.setDuration(300);

// 表示重复多次。 也可以设定具体重复的次数,比如alphaAnimation1.setRepeatCount(5);
alphaAnimation1.setRepeatCount(Animation.INFINITE);

// 表示动画结束后,反过来再执行。 
// 该方法有两种值, RESTART 和 REVERSE。 
// RESTART表示从头开始,REVERSE表示从末尾倒播。
alphaAnimation1.setRepeatMode(Animation.REVERSE);

// 给 ImageView 设置动画
ivAnimation.setAnimation(alphaAnimation1);

ok~! 此上就是 百度上都能查到的设置闪烁的动画效果的代码。

但是我今天遇到了一个问题 想用 OnClickListener 控制是否 闪烁 和 不闪烁 

此上代码 不知道是我写的有问题 还是什么其他问题,动画失效了。

然后又百度研究了一下 发现有一个 ObjectAnimator

附上代码:?

ObjectAnimator alphaAnimation1 = ObjectAnimator.ofFloat(ivAnimation,"alpha",0.1f,1f);
alphaAnimation1.setRepeatCount(ValueAnimator.INFINITE);
alphaAnimation1.setRepeatMode(ValueAnimator.REVERSE);
alphaAnimation1.setDuration(300);

此上代码 是初始化 动画。因上面已经有注释了 本代码不进行注释。

然后就是 OnClickListener 的代码了?

@Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.default:

                animationState();
                // 默认状态 透明度为0f
                ivAnimation.setAlpha(0f);
                break;
            case R.id.loding:

                if (alphaAnimation1 == null) {

                    break;
                }

                if (alphaAnimation1.isRunning()){

                    break;
                }else {

                    alphaAnimation1.start();
                }
                break;
            case R.id.end:

                animationState();
                // 连接成功状态 透明度为1f
                ivAnimation.setAlpha(1.0f);
                break;
            default:

                break;
        }
    }

animationState()方法中 代码:?

private void animationState() {

   if(alphaAnimation1 !=null && alphaAnimation1.isRunning()){

       alphaAnimation1.cancel();
   }
}

ok 然后运行就好用了   希望对你们有所帮助。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值