0

我有一个具有特定背景的应用程序,我想通过单击按钮将其更改为非常好的和逐渐的不同背景。

我尝试通过将根布局的背景属性设置为我的可绘制文件夹中的两个 png 文件来使用 objectanimator 执行此操作,但它不起作用,因为背景值的类型是可绘制的。

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

RelativeLayout.setbackground(drawable image);

,并且 objectanimator 不采用值不是 int、float 等的属性,在我的情况下,我有可绘制类型。

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

在没有任何库的情况下完成此任务的最佳方法是什么?

4

1 回答 1

0

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

淡入淡出.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>

淡出.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>

然后在您的活动/片段中

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) {
      }
});
于 2016-03-21T06:02:00.843 回答