Android Studio 2.0 beta 6
は、私はそれが20dpになるように、現在の場所であるから、上から右と20dpからツールバー内ImageView (ivSettings)
を移動するためにViewPropertyAnimatorを使用しようとしています取得します。 ImageView (ivSearch)
20dpを左上から上に移動します。親のレイアウトの幅
イメージビューはToolbar
に含まれています。
これは初期状態で、アイコンをツールバーの上部の角に移動したいとします。
私が使用していたコードは、幅を取得し、ivSettingsが右から20dpであることを取得するための値を減算するために、このです。
final DisplayMetrics displayMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
final float widthPx = displayMetrics.widthPixels;
ivSearch.animate()
.setInterpolator(new AccelerateInterpolator())
.x(20)
.y(20)
.setDuration(250)
.start();
ivSettings.animate()
.setInterpolator(new AccelerateInterpolator())
.x(widthPx - 160)
.y(20)
.setDuration(250)
.start();
しかし、これをさまざまな画面サイズで試したところ、正確な幅の計算はできません。これを行うより良い方法はありますか?私は問題はアニメーターの方法は、値は、生のピクセル値であることを期待しているということであると考えている任意の提案
代わりにツールバーから幅を使用してみてください。 – Piyush
toolbar.getWidth()は常に0を返すようにwidthを 'match_parent'に設定しました。 – ant2009
dpをピクセルに変換していますか、widthPx - 160は各デバイスの幅を計算する式ですか? – Piyush