web-dev-qa-db-ja.com

Android、現在のアクティビティをぼかす/グラス/フロストする方法

基本的に

アクティビティには、ListViewがあります。アイテムを選択すると、透明なアクティビティが小さなボックスとして開きます。このボックスが表示されても、以前のアクティビティ画面を表示できますが、

私が理解しようとしているのは、リンクされた画像のように前の画面をぼかす方法です here (UIを無視して、ぼやけた草の領域を見てください)。

これはどのようにして可能ですか?

アドバイスありがとうございます。

18
rennoDeniro

API <14の場合、フラグ_WindowManager.LayoutParams.FLAG_BLUR_BEHIND_を使用できますが、非推奨になり、組み込みのぼかしは、より高いAPIではサポートされなくなりました

ただし、通常のビューまたはオーバーレイでこれを行うことができます。あなたがしたいことは:

  • アクティビティの全体的なレイアウトからBitmapを作成します( 例はこちらを参照
  • 好きな方法でビットマップをぼかします( ここにいくつかの例を示します
  • すべてをカバーするViewをレイアウトに追加(または再表示)します。 bkgをぼやけたビットマップに設定する
  • ダイアログ/透明なアクティビティを開く
  • それが閉じたら、Viewを削除するか、再度使用する場合はsetVisibility(GONE)を削除してください。
34
Geobits