Android view背景动态改变带简单淡入淡出动画

本文介绍了如何在Android应用中实现动态改变View背景颜色的同时,添加平滑的淡入淡出动画效果,提升用户体验。通过使用ValueAnimator和颜色插值器,可以轻松实现这一功能。
int firstDefaultColor;
boolean firstDefaultColorHasSet=false;

///////////////////////////////

 private void changeBgColor(View view,boolean isBack) {
        Log.d(TAG, "changeBgColor: isBack:"+isBack);
        int commColor= 0xffffffff;//白色
        //from xml config color
        if (!firstDefaultColorHasSet){//只赋值一次   用于获取xml里的背景颜色值
            Log.d(TAG, "changeBgColor: firstDefaultColorHasSet:"+firstDefaultColorHasSet);
            try{
                ColorDrawable drawable = (ColorDrawable) view.getBackground();
                if (drawable!=null){
                    firstDefaultColor= drawable.getColor();
                    firstDefaultColorHasSet=true;
                }else {
                    firstDefaultColorHasSet=true;
                }
            }catch (Exception e){
                //
                firstDefaultColorHasSet=true;
            }
        }
        if (firstDefaultColorHasSet){
            commColor=firstDefaultColor;
        }
        //
        int defaultColor_start=0xff6C6C6C;
        int defaultColor_end=commColor;
        int startColor =isBack?defaultColor_start:defaultColor_end;//0xffff0000
        int endColor = isBack?defaultColor_end:defaultColor_start;
        Log.d(TAG, "changeBgColor: startColor:"+startColor);
        Log.d(TAG, "changeBgColor: endColor:"+endColor);
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
            ObjectAnimator anim= ObjectAnimator.ofArgb(view,"backgroundColor",startColor,endColor);
            anim.setDuration(200);
            anim.start();
            view.setAlpha(0.7f);
        }else{
            view.setBackgroundColor(endColor);
            view.setAlpha(0.7f);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值