でステータスバー下のホワイトスペース私はSOの周りのどこかから取得するには、コードのこの部分を使用しています:アンドロイド - スクリーンショット
private static Bitmap getScreenshot(View v) {
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.draw(c);
/*v.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);*/
return b;
}
ビューのスクリーンショットを取得します。それは画面全体を取得しますが、Toolbar
上記StatusBar
の高さの余分な空白で、私はそれを行う getWindow().getDecorView().getRootView()
毎回:これは私が活動のビューを取得する方法です。私はここで失われている、私が提供してはならない余分な情報について私に尋ねてください。
EDIT:
public static Bitmap blur(Context ctx, Bitmap image) {
final float BITMAP_SCALE = 0.4f;
final float BLUR_RADIUS = 7.5f;
int width = Math.round(image.getWidth() * BITMAP_SCALE);
int height = Math.round(image.getHeight() * BITMAP_SCALE);
Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);
Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);
RenderScript rs = RenderScript.create(ctx);
ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
theIntrinsic.setRadius(BLUR_RADIUS);
theIntrinsic.setInput(tmpIn);
theIntrinsic.forEach(tmpOut);
tmpOut.copyTo(outputBitmap);
return outputBitmap;
}
そしてActivity
に呼び出されるメソッド::私は忘れてしまった 、私はぼかしの組み合わせて使用ここで
public static Bitmap blur(View v) {
return blur(v.getContext(), getScreenshot(v));
}
は、ウィンドウのSSです
私はスクリーンショットを表示することができますか?2つを作成
Bitmaps
? –私はスクリーンショットを掲示しました....私は突然明瞭さを得ました。私はすぐに答えを投稿するつもりです –