2016-06-20 10 views
2

私は速度のレベルのように動作するアプリケーションを作成しています。Androidで画像を相対的に移動するにはどうすればよいですか?

あなたが速く行くと、私のイメージは上がり、遅くなると下になります(上にならない、上が速く、下が遅くなります)。

現在、すべてのonLocationChangeで推奨速度を計算し、実際の値を取得します。 のSETYはピクセル単位であり、それはすべての画面に収まらない:

imageView.setY((float) speedvalue); 

私は二つの問題があります。そして、私はそのようなイメージを移動置きます。

イメージが瞬時に動くので、アニメーションのように動かしたいと思います。

どうすれば解決できますか?

答えて

1

あなたはこのようなビューの動きアニメーション化することができます、第二に

TranslateAnimation animation = new TranslateAnimation(startXCoordinate, finishXCoordinate, startYCoordinate, finishYCoordinate); 

animation.setDuration(1000); 

view.startAnimation(animation); 

をこのコードを使ってDPSにピクセルを変換し、それを別の画面で同じ量を移動します。

int distanceToMove = (int) TypedValue.applyDimension(1, howManyDPsToMove, context.getResources().getDisplayMetrics());

+0

最初のものは動作しますが、2番目のものは私のために働いていません。スクリーンよりもはるかに低いデバイスでは、1つのイメージを2280ピクセルに置きたい場所が760 dpに変換されます。 –

+0

android:animateLayoutChanges = "true"は、あまり制御するのではなく、よりシンプルに物事をアニメーション化する別の方法です。 –

関連する問題