2012-03-29 13 views
3

facebookアプリのようなポップアップダイアログを、選択領域にポインティングマーカで作ってみたいです。 ここに例を示します。 http://imageshack.us/photo/my-images/9/facebookandroid.png/facebook android appのようなポップアップダイアログを作成する

あなたが何か知っていれば助けてください。

事前のおかげで..

enter image description here

+0

ディネッシュから解決になるだろうしてもよいし、私はあなたがこのためにQuickActionダイアログを作成することができると思います。 –

+2

これを参照してください[Androidのクイックアクションダイアログ](https://github.com/lorensiuswlt/NewQuickAction) –

答えて

1

あり、この問題を解決することができ、複数の戦略がありますが、それぞれのソリューションは、それ以来、ダイアログの上部にある三角形/ポインタの配置に対処する必要がありますユーザの選択を示すために配置されなければならない。

私はこの問題を解決するための最も簡単な方法があると思う:

    は、透明なテーマを持って活動を開始し
  1. 。したがって、マニフェストのActivityにandroid:theme = "@ android:style/Theme.Translucent.NoTitleBar"のようなものを適用してください。タイトルバーが必要な場合は、適切なアンドロイドスタイルを検索してください。
  2. ユーザーが選択したナビゲーション要素を表すアクティビティに余分を渡します。これは、アクティビティが三角形ポインタを配置するために使用されます。
  3. アクティビティのonCreate()メソッドでこの余分を処理します。コード内に三角形/ポインタを描画します。つまり、onCreate()でsetContentView(...)を呼び出してからViewGroup(RelativeLayout、AbsoluteLayoutなど)への参照を取得することを意味します。いったんそれを持っていれば、ViewGroup#addView(Viewの子、intインデックス)を呼び出して、三角形を表すImageViewを追加することができます。
  4. プログラムで追加するビューは、XMLの要素でカバーされている(つまり隠されていない)ことを確認してください。
  5. 三角形を追加するのは比較的簡単ですが、配置が難しい場合があります。まず、あなたが投稿したスクリーンショットは、固定幅のデバイスを想定しています。これは、市場に出回っている1000インチの画面サイズで動作する必要のあるAndroidアプリの場合には当てはまりません。 top-navの高さはおそらくハードコードされているので、三角形/ポインタのY座標は問題にはなりません。トリッキーなX座標です。トップのnav要素が伸びるとどうなりますか?三角形/ポインタの中心がどこにあるべきであるかのX位置を得るための強固な方法があるとしましょう。それで、私は、私のアクティビティで垂直LinearLayoutを使用し、三角形/ポインタの左余白でImageViewを使用しようとしています。これは単なる推測であり、具体的な実装に適したView要素と位置付け戦略を得るためには、おそらくこれを試す必要があります。
+0

このような堅牢な方法は、トップ・ナビゲーションにタッチイベントハンドラを追加し、x座標を追跡することですタッチ/クリックの – Tenacious

+1

アクティビティを作成する代わりに、ダイアログを作成することもできますが、ユーザーがポップアップエリアをタッチすると閉じる必要があります –

関連する問題