通过ValueAnimator实现呼吸灯效果
来源:互联网 发布:2017双色球九宫图算法 编辑:程序博客网 时间:2024/04/28 17:55
主要是通过AnimatorUpdateListener获得状态,运行一个不现实的动画,根据获得的运行值自己设置view或者drawable的状态。
代码如下
ValueAnimator alphaAnim = null;
/**
* 透明渐变的动画
* @param animType 动画的类型,循环/单次 0是单次,1是循环,默认0
* @param drawable 结束之后的前景
**/
public void startAlphaAnim(final int animType,final int overDrawable){
alphaAnim =ObjectAnimator.ofInt(255,0);
alphaAnim.setDuration(2000);
if(1==animType){
alphaAnim.setRepeatCount(-1);
alphaAnim.setRepeatMode(ValueAnimator.REVERSE);
}
alphaAnim.addUpdateListener(new AnimatorUpdateListener(){
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int frameValue = (Integer) animation.getAnimatedValue();
getBackground().setAlpha(255-frameValue);
getDrawable().setAlpha(frameValue);
}
});
alphaAnim.addListener(new AnimatorListener(){
@Override
public void onAnimationStart(Animator animation) {}
@Override
public void onAnimationEnd(Animator animation) {
//将透明度的恢复放在前面,只有这样才是对同一对象入手
//背景色不需要做处理,因为背景色只有在动画的时候才有用
getDrawable().setAlpha(255);
setBackgroundColor(getResources().getColor(R.color.transparent));
setImageResource(overDrawable);
}
@Override
public void onAnimationCancel(Animator animation) {
//将透明度的恢复放在前面,只有这样才是对同一对象入手
//背景色不需要做处理,因为背景色只有在动画的时候才有用
getDrawable().setAlpha(255);
setBackgroundColor(getResources().getColor(R.color.transparent));
setImageResource(overDrawable);
}
@Override
public void onAnimationRepeat(Animator animation) {}
});
alphaAnim.start();
}
/**
* 取消渐变动画
**/
public void closeAlphaAnim(){
if(alphaAnim==null)
return;
alphaAnim.cancel();
alphaAnim = null;
}
- 通过ValueAnimator实现呼吸灯效果
- android 自定义动画 圆呼吸效果 ValueAnimator
- 通过ValueAnimator 来实现按钮点击后倒计时的效果
- 通过ValueAnimator实现点击展开和关闭的效果
- 通过矩阵键盘,用PWM来实现呼吸灯的效果
- Android呼吸灯效果两种实现
- 安卓 呼吸灯效果--代码实现
- 呼吸灯 效果
- 呼吸灯效果
- 呼吸灯效果动画
- timer实现的呼吸灯效果——初步
- STM8S003F3通过PWM波实现三基色呼吸灯
- STM8S003F3通过PWM波实现三基色呼吸灯
- Android 按钮呼吸灯效果
- 按钮添加呼吸灯效果
- 呼吸灯的实现
- 使用ValueAnimator实现数字增长效果
- SVG animate实现呼吸闪烁效果
- C++ Primer Plus (第6版)笔记心的---开始学习C++
- Android 数据存储:五大存储之SharedPreference
- 六款值得推荐的android(安卓)开源框架简介
- helloworld!
- MSSql Server基础学习系列———数据约束
- 通过ValueAnimator实现呼吸灯效果
- 快速排序
- 中国式P2P模式与中国式监管思维
- mysql密码忘记了怎么办?
- View - Controller 的通信模式
- MySQL中的Prepared Statements
- html笔记
- timer实现的呼吸灯效果——初步
- 挂机游戏隐藏窗口代码