2

タッチに基づいて、ビューをその親内でスムーズに移動しようとしています。OnTouchListener が動作し、動きを追跡しています。実際にビューを移動するにはどうすればよいですか? RelativeLayout.LayoutParameters を使用してマージンを設定しようとしましたが、マージンは int 値しか受け入れないため、ビューがぎくしゃくします。フロートを使用できるようにするTranslateAnimationを使用してみましたが、それはキャンバスを移動するだけなので、タッチイベントは取り残されます。これをスムーズに行う方法を見つけた人はいますか?

4

1 に答える 1

2

最善の解決策は、あなたの魂を苦しめるカスタムViewGroupサブクラスを書き直すことです。成功した場合は、超人的な神経を持っていることを確認してください:)。

2番目の解決策は簡単ですが、ビューが画像で構成されている場合にのみ機能します。したがって、カスタムViewサブクラスを記述し、onDraw()メソッドのCanvasで画像を調整できます。

私の最後の解決策はOpenGLでしょう。

また、私にはわかりませんが、相対的なレイアウトでは、レイアウトを更新してマージンを更新し、invalidate()ビューが機能する可能性があります。

幸運を!

于 2012-05-15T22:26:48.943 に答える