0

フェード アニメーションを使用した後、サブ レイアウトをフェードさせたままにできない状態で立ち往生しています。

FrameLayout mapLayout = (FrameLayout)findViewById(R.id.mapLayout);

Animation fadeAnim = AnimationUtils.loadAnimation(this, android.R.anim.fade_out);
mapLayout.startAnimation(fadeAnim);

Androidでこれを達成する方法を教えてください。このアニメーションと影付きの効果は、「一時停止」ボタンをクリックすると発生し、効果を元に戻すには「再開」ボタンを押します (申し訳ありませんが、影付きビューで「一時停止」ボタンを使用して画像を作成しましたが、実際には「再開」です)

ここに画像の説明を入力

4

3 に答える 3

0

hii makki onclick イベントで以下のコードを設定できます

    AnimationSet set = new AnimationSet(true);

Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(50);
set.addAnimation(animation);

animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f
);
animation.setDuration(100);
set.addAnimation(animation);

LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);
l.setLayoutAnimation(controller);

その後、アニメーションをフェードアウトします

 public static Animation runFadeOutAnimationOn(Activity ctx, View target) {
  Animation animation = AnimationUtils.loadAnimation(ctx,android.R.anim.fade_out);
  target.startAnimation(animation);
  return animation;
}
于 2012-04-04T10:22:15.297 に答える
0

試す

fadeAnim.fillAfter(true);
fadeAnim.execute();

http://developer.android.com/reference/android/view/animation/Animation.html#setFillAfter(ブール値)

于 2012-04-04T10:15:19.973 に答える
0

上記の両方の回答は問題の解決に役立ちましたが、両方の回答は私の問題に対する実際の解決策ではありませんでした。私が作った解決策は

必要に応じて 2 つのアニメーションを定義しました

Animation fadeOut = new AlphaAnimation(0f,0.5f);
Animation fadeIn = new AlphaAnimation(0.5f,1f);
fadeOut.setFillAfter(true);
fadeIn.setFillAfter(true);

「一時停止」ボタンをクリックすると、次の行が実行されました

mapLayout.startAnimation(fadeOut);

次に、一時停止状態から再開するために、次の行を実行しました

mapLayout.startAnimation(fadeIn);

サイモンとディーパックに感謝します!

于 2012-04-04T18:10:57.860 に答える