0

特定の背景を持つアプリがあり、ボタンのクリックで非常にうまく、徐々に別の背景に変更したいと考えています。

ルート レイアウトの背景属性を描画可能フォルダーにある 2 つの png ファイルに設定して objectanimator で実行しようとしましたが、背景の値の型が描画可能であるため機能しませんでした。

私のルート レイアウトは相対レイアウトで、その背景を変更したいと考えています。

RelativeLayout.setbackground(drawable image);

、および objectanimator は、int、float などではない値を持つプロパティを取りません。私の場合、描画可能な型を持っています。

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

ライブラリなしでこれを達成する最良の方法は何ですか?

4

1 に答える 1

0

これらの 2 つのアニメーションを anim フォルダーに追加します。

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>

フェードアウト.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 に答える