2017-08-18 19 views
0

私は私のアプリでアニメーションを実装しようとしています。私はいくつかのボタンをandroid:layout_above="id"または​​を使用してRelativeLayout内でうまくソートしているので、それらの間のマージンを簡単に変更することができ、 はすべてのデバイスの画面密度に適応します。アニメーション相対位置の代わりにビューIDを使用

私の問題は、別のボタンを から出すようにアニメーションを実装しようとしていることです。それは動作しますが、android:fromYDelta="--%p"android:toYDelta="--%p"のようなツールを使ってRelativeLayoutのように正確にすることは難しいです(ボタン間のマージンはどこでも同じではありませんが、デバイスの密度)。

android:startFromView="id"またはandroid:translateToView="id"のようなパラメータを使用して(XMLまたはプログラムで)アニメーションを作成する方法はありますか?もしそうでなければ、そのような方法を実装することは可能でしょうか?

ありがとうございました!

答えて

0

私は私の問題を解決しました。 ImageButtonをアニメーション化し、onLayout(boolean,int,int,int,int)メソッドをオーバーライドし、拡張クラスにprivate属性を与えました:int [] location(size 2)。 私はgetLocationOnScreen(int[] location)に電話して、ボタンの位置を画面に表示します。

最後に、私のMainActivityでは、画面上のボタンの位置を知るためにゲッターを呼び出す必要があります。私は使用します

Animation anim = new TranslateAnimation(
Animation.ABSOLUTE, 
btn.getLocation[1], 
... 

希望これは誰かを助ける!

関連する問題