透過Activityと操作。

915 views
Skip to first unread message

yotsu

unread,
Dec 14, 2010, 11:34:38 AM12/14/10
to 日本Androidの会
現在、「のぞき見防止フィルター」のようなアプリを作りたくて、
勉強中なのですが、こちら(http://www.adakoda.com/android/000265.html)を参考に
透過の画面を表示することは実現できたのですが、他のアプリを実行したりできなくて
行き詰っています。
ご存知の方がいらっしゃいましたら、ご教授ください。
よろしくお願いします。

tokasiki

unread,
Dec 14, 2010, 6:57:26 PM12/14/10
to android-g...@googlegroups.com
渡嘉敷です

透過 Activity では「のぞき見防止フィルター」のようなアプリは実現する
ことはできません。

先日紹介させて頂いた「 Android アプリ UI デザイン&プログラミング」
でも簡単に触れていますが Service から描画することで UI イベントを処
理しないイメージ表示を実現することができます。

WindowManage オブジェクトを取得し、表示するオブジェクト(例えば
ImageView など)を LayoutParam を設定して追加します。
下記のような感じです。

WindowManager windowManager =
(WindowManager)getSystemService(Context.WINDOW_SERVICE);

windowManager.addView(<表示するオブジェクト>, new
WindowManager.LayoutParams(<表示するオブジェクトの幅>, <表示する
オブジェクトの高さ>,
WindowManager.LayoutParams.TYPE_TOAST,
WindowManager.LayoutParams.FLAG_SCALED |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES,
PixelFormat.RGBA_8888));

注意すべき点は WindowManager に追加したイメージを取り除く場合です。
表示するオブジェクトを保持しておくことで removeView により削除するこ
とができますが、何らかの理由で Service が後処理なしに終了した場合に
どのようにすれば取り除けるのかまでは確認していません。(分かったら教
えてくださいね)

よろしくお願いします。

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。

yotsu

unread,
Dec 15, 2010, 6:23:27 AM12/15/10
to 日本Androidの会
yotsuです。

お礼が遅くなり大変申し訳ありません。
わかりやすくコードまで書いていただきありがとうございます。
Serviceが後処理なしに終了してしまった場合に関して何かわかりましたら
回答いたします。
今後ともよろしくお願いします。
Reply all
Reply to author
Forward
0 new messages