2011-01-14 12 views
1

Angry Birdsのホーム画面のようなフローティングメニューを作成する方法を知っている人はいますか?Androidのフローティングメニューのような怒っている鳥

折りたたみモード(歯車、上ボタン)のメニューボタンを示す画像です。これらのボタンをタップすると、実際のメニューが展開され、2つ以上のラウンドボタンが表示されます。

alt text

のリンクは、手がかりははるかに高く評価されます。

答えて

1

私はそれが透明な背景を持つ画像だと、あなたが時間に基づいて、その位置を計算すると思います....

あなたは、標準のウィジェットとそれを達成することができますが、多分カスタムビューを作成するために、良いアイデアだろうonDraw()を実装する

+0

現在のレイアウトのボタンをonclickingするこのフローティングメニューの例をいくつか与えることができます別のレイアウト(メニュー)は、現在のレイアウトボタンの上に左から右に浮動する必要がありますクリックされたボタン..(怒っている鳥のメニューの例と同じ) –

2

私は間違っているかもしれないが、私はすべてがOpenGLで行われていると思う。

+1

はい。これはゲームなので、OpenGLで行う必要があります。しかし、ゲームではないものにこのメニュースタイルを使用するつもりなら、OpenGLを使用した場合、あなたは過酷になるでしょう。 –

+0

@PedroLoureiro:それは本当かもしれないが、彼はどのように作られたのか、どうやって似たようなことができるかを尋ねていた。彼は何を述べなかった。私は彼が達成したいかもしれないと思っているものではなく、その質問に答えました。 –

+0

AngryBirdsでもこのようなOpenGLメニューを使うのは難しいです。もちろん、ここでは使われていません。 – Ewoks

0

これはあなたの「ゲーム画面」のXML内で行われます。 OpenGL-ESのチュートリアルを終えたと仮定して、カスタムGLSurfaceViewを保持するxmlファイルが必要です。ボタンなどのオーバーレイアイテムを追加するには、このXMLファイルに追加するだけです。ここで私が働いているゲームの例です:

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

//This is your GLSurfaceView which will fill the whole screen 
<android.opengl.GLSurfaceView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:id="@+id/GLSurface" /> 


     //This layout will overlay the game 
     <LinearLayout 
     android:gravity="center" 
     android:weightSum="100" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

      <Button 
      android:layout_weight="10" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Sel" 
      /> 

      <SeekBar 
      android:paddingLeft="30px" 
      android:paddingRight="30px" 
      android:layout_weight="80" 
      android:gravity="center" 
      android:id="@+id/RotateBar" 
      android:layout_width="180px" 
      android:layout_height="wrap_content" 
      android:max="180" 
      /> 

      <Button 
      android:layout_weight="10" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Act" 
      /> 

     </LinearLayout> 

明らかにこれは、変更された(私は、画面の中央に浮かぶのボタンがありません:Pを)されていますが、アイデアを得ます。 link

+0

このフローティングメニューの例をいくつか挙げることができますonclicking現在のレイアウト内のボタン別のレイアウト(メニュー)がクリックされた現在のレイアウトボタンの上に左から右へアニメーションする必要があります(怒っている鳥のメニューの例と同じです) –

関連する問題