1

そのため、私が取り組んでいるプロジェクトでは、実行時にウィジェットを画面の上に移動できる必要があります (リバース ウォーターフォールのように)。実行時に(絶対レイアウトを使用して)画面のある位置からより高い位置にボタンを移動する方法の例を誰かが教えてください。

私はそれがおそらく利用することを知っています

 AbsoluteLayout.LayoutParams

またはparams.addRule うまくいけば。でも気をつけて教えてください

例: __ __ __
_ __ __ _ __ _ __ __
(画面の上部) | [ボタン]
| -
| -
| -
| -
| -
| -
| -
| >
| | [ボタン] _
_ _ _ _ _ _ _ _ __ _ __ (画面)

4

1 に答える 1

2

http://developerlife.com/tutorials/?p=343から

「/res/anim/slide_right.xml」という名前の、左からスライドするアニメーション (ビューの幅全体で右から左に変換) を次に示します。

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="150" />
</set>

上記のものを使用した別のアニメーション シーケンスを次に示します (@anim/slide_right.xml -> “/res/anim/slide_right.xml”):

<?xml version="1.0" encoding="utf-8"?>

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
        android:delay="10%"
        android:order="reverse"
        android:animation="@anim/slide_right" />

したがって、シーケンスを XML で作成し、Android プロジェクト リソースの「/res/anim/some_file.xml」に配置できます。この XML ファイルの作成方法の詳細については、こちらを参照してください。

コードでこれを行うこともできます::

  AnimationSet set = new AnimationSet(true);

  Animation animation = new AlphaAnimation(0.0f, 1.0f);
  animation.setDuration(100);
  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(500);
  set.addAnimation(animation);

  LayoutAnimationController controller =
      new LayoutAnimationController(set, 0.25f);
  button.setLayoutAnimation(controller);

その後:

public static Animation runSlideAnimationOn(Activity ctx, View target) {
  Animation animation = AnimationUtils.loadAnimation(ctx,
                                                     android.R.anim.slide_right);
  target.startAnimation(animation);
  return animation;
}
于 2011-04-21T05:16:27.193 に答える