您的位置:首页 > 移动开发 > Android开发

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

2018-12-10 17:40 357 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzyccc/article/details/84943382

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

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

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

开启闪烁,代码如下:

[code]// 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

附上代码:👇

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

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

然后就是 OnClickListener 的代码了👇

[code]@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()方法中 代码:👇

[code]private void animationState() {

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

alphaAnimation1.cancel();
}
}

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: