【android】ホーム画面や他のアプリの前面にViewを表示する。
公開日:
:
最終更新日:2012/06/06
android
WindowManagerのTYPE_SYSTEM_ALERTのレイヤーにViewを表示することで、Activityに依存しないオーバーレイを表示することができます。
View anyView = new View(context); int positionValuel = Gravity.TOP | Gravity.LEFT; showOverlay( anyView, 30, 100, positionValue); //適切なタイミングでViewを取り除く removeViewFromWm(anyView); private void showOverlay(View view, int widthPx, int heightPx, int position){ WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); WindowManager.LayoutParams params = new WindowManager.LayoutParams( widthPx, heightPx, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT); params.gravity = position; wm.addView(overLay, params); } //viewを取り除く private void removeViewFromWm(View overLay){ WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); wm.removeView(anyView); }
加えてパーミッションの追加が必要になります。
AndroidManifest.xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>
関連記事
-
-
【android】ネットワークの接続状況を確認する
コードから接続状況を確認。 ConnectivityManager co
-
-
【android】バイブレーションを使う
必要なファイル MyApp.manifest MyApp.java MyApp.m
-
-
[android] モンキーテスト(Monkey Test)を実行する
最近テストの効率化に目覚めました。 モンキーテストは猿にアプリを渡してみてめちゃくちゃな操作をさせ
-
-
【android】stringsリソースにパラメータを埋め込む
●strings.xml %n$x n : 引数に渡す際の順番。n番目の引数。 x
-
-
【android】リソースからいろいろ取得する
リソースで定義したいろいろをコード内で呼び出す方法です。 レイアウト //リソースからレ
-
-
[android] ActivityとFragmentのライフサイクルいろいろ
Fragmentを使い始めてライフサイクル関係でハマることがあったので備忘録。 FragmentA
-
-
【android】複数のカスタムテーマを設定で切り替える
背景色やアプリ全体のテーマ色を設定で変更したいという要望をもらったので実装してみました。
-
-
【android】サービスの実装
ダウンロードなどActivityに依存したくない大きなバックグラウンド処理や常駐プロセスを作りたい場
-
-
【andoid】ViewPagerを使う
1. layout.xmlにViewPagerを配置 2. PagerAdapter.jav
-
-
【android】任意のスレッドで処理を行う
非UIスレッドでUIを操作したい場合に、任意の処理をUIスレッド上で実行する。 目次
- PREV
- 【android】標準の設定画面を作る
- NEXT
- 【android】バイブレーションを使う