ScriptIntrinsicBlurを使用して、実際に1つのソリッドカラーで満たされたビットマップの1つをぼかしました。しかし、私が得るぼかし効果は本当に不都合です。親切に下の画像をチェックしてください。白い部分は実際にはぼかしたビットマップです。ビットマップは実際にはウィンドウ全体を単色で塗りつぶします。以下ScriptIntrinsicBlurは不適切なぼかしを生成します。
ぼけをコードすることができるです。
static Bitmap blurBackground(Context context, int color, int width, int height){
Log.d("AppLock","RENDER DONE in " + System.currentTimeMillis());
Bitmap bitmap = Bitmap.createBitmap(200,200, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(color);
canvas.save();
Bitmap blurredBitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true);
RenderScript renderScript = RenderScript.create(context);
Allocation inputAllocation = Allocation.createFromBitmap(renderScript,blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL
, Allocation.USAGE_SHARED);
Allocation outputAllocation = Allocation.createTyped(renderScript,inputAllocation.getType());
ScriptIntrinsicBlur bluerScript = ScriptIntrinsicBlur.create(renderScript,Element.A_8(renderScript));
bluerScript.setInput(inputAllocation);
bluerScript.setRadius(15f);
bluerScript.forEach(outputAllocation);
outputAllocation.copyTo(blurredBitmap);
bitmap.recycle();
renderScript.destroy();
Log.d("AppLock","RENDER DONE in " + System.currentTimeMillis());
return blurredBitmap;
}
私はここに、多数の柱に見ているこちらLink To Tutorial
からチュートリアルを追っていると私はARGB_8888のためのレンダリングスクリプトを使用する必要があることを承知しています。また、ElementをElement.U8_4()に変更しようとしました。しかし、それは200x200ピクセルのビットマップを返して、実際にはウィンドウ全体を塗りつぶすだけです。私は何が間違っているのか分かりません。ヘルプは高く評価されるだろう。
私は理解していません。ソリッドカラーをぼかすと、ソリッドカラーが得られます。何がポイント?私は何かを誤解していますか? –
@Saehun Sean Ohあまりにもぼやけがどのように作用するのか分かりません。私はリンクの画像から同様の効果を達成したいと思います。 http://imgur.com/5hxYziV –