2012-11-15 5 views
17

基本的にはAndroid、ぼかし/ガラス/霜の現在のアクティビティ

アクティビティでは、私はListViewを持っています。 アイテムを選択すると、透明なアクティビティが小さなボックスとして開きます。このボックスが表示されたら が、あなたはまだ、前の活動画面を表示することができ、私は把握しようとしています何

は 画像は(UIを無視し、単にぼやけ草を見てhereをリンクのように前の画面をぼかすする方法ですエリア)。

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

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

答えて

33

はAPI < 14に対しては、フラグWindowManager.LayoutParams.FLAG_BLUR_BEHINDを使用することができますが、それは

しかし高いAPIを非推奨とされなかったですし、内蔵のブレがサポートされなくなりました。やりたいことです:

  • はあなたが好きな方法でビットマップあなたの活動の全体的なレイアウトからBitmapsee here for example
  • ブラー(a few examples here
  • が追加(または再表示)あなたの中Viewを作成します。すべてをカバーするレイアウト。ぼやけたビットマップへ
  • は、それが閉じると、ダイアログ/透明活動
  • を開き、いずれかのあなたは再びそれを使うことになる場合View、またはsetVisibility(GONE)を削除BKG設定します。
+0

ありがとう、私はこれを今試みよう! – rennoDeniro

+0

こんにちは、ぼかしの例がぼやけるには数秒かかるので、これは新しいアクティビティの開始を遅らせます どうすればこの問題を回避できますか?できるだけ早くぼかして開くようにしたい。 – rennoDeniro

+0

答えのNDK版を試しましたか?著者は40倍のスピードアップがネイティブになると報告しています。あなたが純粋なJavaなら他のすべてのために少しでもぼやけになるかもしれませんが、それは価値があります。別の考え方は、各ラウンドを2ずつインクリメントしてピクセルループを変更することです。これは完全なぼかしではありませんが、x/yの両方のピクセルを1つおきにするだけで1/4の時間しかかかりません。どのように見えるか分かりませんが、調べるためにループを変更するには数分かかるでしょう。 – Geobits

関連する問題