4

私の必要な指示は次のとおりです。

ここに画像の説明を入力 私は droidz アクティビティの例と、手で、または壁に衝突したときに画像をさまざまな方向に移動する方法についての rockpaperscissors の例から見てきました。

問題1:

上記のように、4 つの異なる画像を 4 つの方向に移動させたいと思います。そして、それらが壁に触れると、それらは消え、開始点から次々と再び開始し、再び同じ方向をたどるはずです.

問題 2:

移動中にこれらのいずれかに触れると、消えてその画像だけをループし続けるか、別のアクティビティに移動する必要があります。この2つの問題で私を助けてください。前もって感謝します。

4

1 に答える 1

3

API 11 で利用可能なこれらの関数を使用できます

((TextView)findViewById(R.id.textView)).setTranslationX(200);
((TextView)findViewById(R.id.textView)).setTranslationY(300);

更新 このコード サンプル コードを試してください。

    final TextView tv = (TextView)findViewById(R.id.textView);
    new Timer().schedule(new TimerTask() {

        @Override
        public void run() {
        MainActivity.this.runOnUiThread(new Runnable() {

            public void run() {
                tv.setTranslationX(tv.getTranslationX()+10);
                tv.setTranslationY(tv.getTranslationY()+10);
                tv.invalidate();

            }
        });

        }
    }, 1000 , 1000);
    tv.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            Toast.makeText(getApplicationContext(), "Clicked!", Toast.LENGTH_SHORT).show();

        }
    });

アップデート

あなたが写真に示したものを実装するため。これを実装するための簡単な説明は次のとおりです

  • 各ビューのパス配列 (ポイントの 2D 配列) を作成します。

    ビューは移動します

  • 必要に応じて、繰り返し間隔が 100 ミリ秒以下の各ビューのタイマーを作成します。

  • これらのタイマーでは、そのパス配列からポイントを取得し、それをビューに渡します。

  • その道を永遠にループするということは、循環することを意味します。

  • onClck()そのビューのリスナーを設定します。

  • そのリスナーで、そのビューに対応するタイマーを cancel() し、そのビューを破棄するか、可視性を GONE に設定します。

これを実装することで、このタスクを簡単に実行できます。

于 2012-11-29T13:11:03.200 に答える