【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>
関連記事
-
-
【andoid】ViewPagerを使う
1. layout.xmlにViewPagerを配置 2. PagerAdapter.jav
-
-
【android】 年月だけのDatePicker
final DatePicker datePicker = new DatePicker(sel
-
-
【android】 adbコマンド集
●adbサービス起動 adb start-server ●adbサービス終了 adb
-
-
[android] JSONのパースにかかる時間
リストデータなんかを保存したいというのはよくある要件だと思います。 DBは面倒だしカラム毎に集計す
-
-
【android】ハードウェアキー入力を検出する
Activityを継承したクラスで下記を記述します。 public boolean
-
-
【android】 APIバージョンによる動作の違い
「最近使用したアプリケーション」からの起動 2.x系 -> onNewIntentが呼ばれる 4
-
-
【android】処理時間を計測する
パフォーマンスのリファクタリングを行うには処理時間の計測がかかせません。 SDK標準のクラスを使っ
-
-
【android】 setOnClickListener(false)が効かない
間違いその1 OnClickListenerが登録されているViewにsetClickable
-
-
【android】ネットワークの接続状況を確認する
コードから接続状況を確認。 ConnectivityManager co
- PREV
- 【android】標準の設定画面を作る
- NEXT
- 【android】バイブレーションを使う