Angry Birdsを起動してプレイを押すと、画像の中央の線が水平方向にスクロールするメニューが表示されます。クリックすると、ゲームを開始できます。メニューを横に(水平に)スクロールしてタップ可能な画像を表示するという点で、これに似たメニューを作成する方法を考えていましたか?前もって感謝します!
3 に答える
私はあなたがHorizontalScrollViewでこれを達成できると思います。ホリゾンタルスクロールビューの子は、orientation:horizontalのLinearLayoutになります。これには、ImageViewsまたはImageButtonsが含まれます。Angry Birdsの「スナップ」効果を実現するには、スクロールビューにonTouchListener()を設定する必要があり、ACTION_UPセクション内でhScrlView.getScrollX()をチェックしてどの画像を確認するかを確認します。最も近い画像の次にhScrlView.scrollTo(x、y)を呼び出し、xパラメータを最も近い画像のレイアウトx値にします。
編集:私はGalleryViewを個人的に使用したことはありませんが、このチュートリアルに基づくと、おそらくそのように機能させることができるようです。そして、それはあなたのために「スナップ」メカニズムを処理するかもしれないので、あなたはそれをするためにあなた自身のタッチリスナーを作る必要はないでしょう。ギャラリーで画像の間にスペースを設定できるかどうかはわかりませんが(Angry Birdsの画像はかなり広がっています)、HorizontalScrollViewと線形または相対レイアウトを使用すればできることは確かです。
これはギャラリーを使用して行うことができ、アダプターで各アイテムのImageViewにTouchListenersを追加します。これが最善の方法です。スクロールしているときにギャラリーが各画像の中央に配置されるようにサポートします。ホリゾンタルスクロールビューでは、フリングでスクロールするだけで、メニューの項目は一元化されません。
私はこれを自分で行う方法を見つけることができませんでしたが、この記事は良いスタートです: