2017-01-31 15 views
0

私は、タイマーが1秒に達する前にユーザーがボタンを押すことを想定しているゲームを作っており、ユーザーがクリックするたびにボタンがランダムな位置に移動します。 開始時にボタンは中央に配置されますが、ゲームが終了すると明らかにランダムに配置されます。私はボタンを中央に戻してゲームを始めることができる再開ボタンを持っています。RelativeLayoutのプログラムによる再センターボタン

助けが必要ですか?

+0

どのようなコードがありますか?何を試しましたか? – Einar

+0

私はボタンレイアウトのパラメータをcenterinparent、centerhorizo​​ntallyおよびcenterverticallyに設定しようとしました。 @Einar – FreeLine

答えて

0

View#setTranslationX() and View#setTranslationY()の方法またはView#setX() and View#setY()の方法を使用します。 View#setLayoutParams()フレームワークを使用する代わりに、これらのプロパティメソッドを使用する方がはるかに簡単です。

View#setTranslationX/Yは、画面上の現在の位置を基準に設定されたピクセル数のビューを移動します。したがって、view.setTranslationX(5)は右に5ピクセル移動し、view.setTranslationX(-5)はそれを5ピクセル左に移動します。view.setTranslationY(5)は5ピクセル下に移動し、view.setTranslationY(-5)は5ピクセル上に移動します。 view.setTranslationX(0)はそれをx軸の元の位置に戻し、view.setTranslationY(0)はy軸上に戻します。

View#setX/Y()メソッドは、ビューをビューの左上隅にピボットを置いて、親ビューの設定ポイントに移動します。したがって、view.setX(0)はそれを親ビューの左側に移動し、view.setY(0)は親ビューの上に移動します。ビューの幅と高さを取得して、ビューに配置する場所を決定できます。 view.getX()view.getY()を使用して元の場所を取得できます。

+0

setTranslationX(0)とsetTranslationY(0)は完全に機能しました。ありがとう! :D – FreeLine

関連する問題