2014-01-20 7 views
11

iOS 7が使用しているスタイルが好き通知および音楽 popoverは以下のようになります。iOS 7のぼかし表示をAndroidで複製する方法

enter image description here

だから、私は、Androidにこの事を実装してみてください。いくつかの検索をした後、私はそれを行う方法を達成しました。私が試したことは、次のとおりです。

1)まず、ビューのルート参照を取得し、ビューのgetDrawingCache()機能を使用してスナップを取得します。

linearLayout.buildDrawingCache(); 
SoftReference<Bitmap> bitmap = new SoftReference<Bitmap>(
      Bitmap.createBitmap(linearLayout.getDrawingCache())); 
linearLayout.destroyDrawingCache(); 

2)私は、その親の相対位置をとり、要件ごとに画像を切り取ります。

SoftReference<Bitmap> temp = new SoftReference<Bitmap>(
      Bitmap.createBitmap(bitmap.get(), 0, 
        (parentHeight - childHeight), childWidth, childHeight)); 

3)私は、ビットマップイメージは、いくつかのアルゴリズムでぼかしことを確認してください。

4)オーバーレイビューで設定(IはFast Bitmap Blur For Android SDKfastBlur効果を使用します)。

imageView1.setImageBitmap(Utils.fastblur(temp.get(), 8)); 

しかし、私の問題は、それがスナップその後、ぼかし効果を与え、画像をカットを取るために時間がかかり、その後、私は最終的な結果を得ています。引き出しが底から来るように、iOSは非常に高速のぼかし処理をしますが、後ろにあるスクリーンはすぐにぼやけます。

これを達成する他の方法はありますか?私のシナリオを使用するので、私は画面のすべての2番目のスナップを取ることはできませんし、すべてのドロワーの移動ごとに1秒ごとに4すべての処理を行います。

+0

あなたは色の効果で半透明のビューの背景を作ることができますか?あなたがしていることは印象的ですが、ちょっとハッキリしているようですが、あなたのぼかしアルゴリズムをビューの透明度のあるレベルに置き換えることができますか? –

+0

Umh..iはすでにそれをしました。半透明では、透明性のようなものを出力することはできません。現在の「オーバーレイビュー」のコンテンツの後ろをぼかします。 –

+0

あなたには面白い問題があります...あなたがオーバーレイしているビューがあなたのアプリケーションの一部であると仮定して、それを解読しようとすると、そのビュー(その最も親)をビットマップに変換し、このビットマップにぼかし効果を適用できますか? http://stackoverflow.com/questions/2801116/converting-a-view-to-bitmap-without-displaying-it-in-androidあなたに手がかりを与えるかもしれません.. –

答えて

1

あなたが問題を正しく理解している場合は、引き出しが移動したピクセルごとにぼやけたイメージを更新する必要がある引き出しメカニズムがありますか?

次に、問題を解決するには、画面を一度ぼかして、その画像を表示/非表示と位置付けして、画像が瞬時にぼやけるように見せかけるが、実際には何が起きているか画像が既に生成されているということです。 イメージを多少表示してエフェクトを作成するだけです。

私が理にかなっているのか、私があなたの質問を理解しているのか分かりません。

3

http://nicolaspomepuy.fr/blur-effect-for-android-design/

私はあなたがこのリンクを見ている場合は知っているが、それをチェックアウトしないでください。約200msでぼかし効果がどのように達成されるかについて話します。

PS:コメントもチェックしてください!

関連する問題