スリー3の適当な記事たち

趣味のゲームやアニメ、及びプログラム関係を中心に気楽に書いていきます。

Android Viewインスタンスの座標を相対的に動かす

やっとできました!

AndroidでViewインスタンスを相対的に動かす方法がわかりました!
具体的にはViewの一種であるButtonの位置を変更するということをしたかったのですが、それをViewのインスタンスメソッド?の一つであるsetTranslationX(),setTranslationY()をもちいることで実現できました。

たとえば、IDがbutto01_idnというButtonがあったとするとそれをx軸方向にdx、y軸方向にdy動かす場合はこうなります。

        int dx = 100;
        int dy = 200;
        View v = findViewById(R.id.button01_id);
        v.setTranslationX(dx);
        v.setTranslationY(dy);

ただし、これはあくまでもともとの位置からの相対的な移動なので座標を指定して移動させることはできません。

そういうのもあるのだと思いますが見つけられませんでした。

ただ、これを使って座標指定することもできるような気がします。(Viewの位置を取得して移動先の座標との差を渡せばいけるのでは?)

まあ、普通はいろいろな端末に対応するために座標を指定して移動させるということはしないのだと思いますが。

一応画像です。
f:id:three3:20150626142912p:plain
左上と書いてあるボタンたちが
f:id:three3:20150626142907p:plain
右下に移動しているのがわかると思います。

画像に余計な情報が多くて申し訳ないです。
実はこのアプリは重力方向によってボタンが移動するというものなのです。
だから、重力加速度の値とかを表示したりしています。



では、また!