逐渐改变应用程序的背景

时间:2016-03-21 05:58:30

标签: android android-drawable objectanimator animationdrawable viewpropertyanimator

我有一个具有特定背景的应用程序,我希望非常好地将其更改为不同的背景,并逐渐点击按钮。

我尝试使用objectanimator将root布局的背景属性设置为我的drawable文件夹中的两个png文件,但是它没有用,因为背景值的类型是可绘制的。

  

我的根布局是相对布局,我想改变它的背景。

RelativeLayout.setbackground(drawable image);

,并且objectanimator不会使用非int,float等值的属性,在我的情况下我有drawable类型。

objectanimator.offloat(view,property,values....);

没有任何图书馆,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

将这两个动画添加到动画文件夹

fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:fillAfter="true"
        android:duration="2000"
        />
</set>

fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:fillAfter="true"
        android:duration="2000"
        />
</set>

然后在你的Activity / Fragment

Animation fadeIn = AnimationUtils.loadAnimation(YourActivity.this, R.anim.fade_in);
imageView.startAnimation(fadeIn);

fadeIn.setAnimationListener(new Animation.AnimationListener() {
      @Override
      public void onAnimationStart(Animation animation) {
      }
      @Override
      public void onAnimationEnd(Animation animation) {
          Animation fadeOut = AnimationUtils.loadAnimation(YourActivity.this, R.anim.fade_out);
          imageView.startAnimation(fadeOut);
      }
      @Override
      public void onAnimationRepeat(Animation animation) {
      }
});