1

今日、私はおそらく非常に興味深い質問を受けました。私の仕事では、出会い系サービスを作成しています。主な機能の 1 つは、さまざまな女の子 (または男性) の写真が表示され、ユーザーが「ホット」または「ノット」ボタンを押す画面です。これらのボタンは両方とも、画面上の写真の下に表示されます。

私たちの分析によると、ある種の「ゲーム」メカニズムを実装する必要があるため、ユーザーはそのようなことを望んでいます。たとえば、ユーザーが「Not」ボタンを押すと、フリーズして氷で覆われ始め、壊れて次の写真が表示されます。示されています。これは、アニメーションの拡大縮小、回転、移動ではありません... ボタン自体、そのコンテンツは、短い時間 (1 秒か 2 秒程度) で変化するはずです。

さまざまなデバイスでこれらのボタンをスケーリングすることを考えているとき、および 9 つのパッチと手作りのフレーム アニメーションに関するさまざまな問題を考えているとき、それは私をとても怖がらせます。

そのようなものを作ることは可能ですか?または、何らかの回避策か何かがあるかもしれません。

4

3 に答える 3

3
  1. アニメーション用の画像を作成し、png 形式のフォルダーに保存します。
  2. 以下のコードでこれらの画像をアニメーション化します。
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
 android:oneshot="true">
 <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
 <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
 <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
 </animation-list>

それで

AnimationDrawable rocketAnimation;

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
  rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
  rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
}

public boolean onTouchEvent(MotionEvent event) {
  if (event.getAction() == MotionEvent.ACTION_DOWN) {
    rocketAnimation.start();
    return true;
  }
  return super.onTouchEvent(event);
}
于 2013-02-19T11:48:55.557 に答える
2

drawable フォルダーに画像のリストを作成します。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loading" 
android:oneshot="false" >
<item android:drawable="@drawable/preloader_01" android:duration="50" />
<item android:drawable="@drawable/preloader_02" android:duration="50" />
<item android:drawable="@drawable/preloader_03" android:duration="50" />
<item android:drawable="@drawable/preloader_04" android:duration="50" />

ボタンの代わりに ImageView img を使用し、リストを xml の背景として設定してから、コードで AnimationDrawable を使用してアニメーションを開始します。

    AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
     // Start the animation (looped playback by default).
    frameAnimation.start();`
于 2013-02-19T11:50:08.830 に答える
0

ObjectAnimatorsとValueAnimatorsを使用して、ボタンのアルファ、位置、およびほぼすべてのプロパティをアニメーション化できます。

氷の効果などのカスタムアニメーションが必要な場合は、自分で作成する必要があります。

于 2013-02-19T11:41:19.833 に答える