Я использую эту часть кода, чтобы получить где-то около SO:Android - Пустое пространство под статусной на скриншоте
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;
}
, чтобы получить скриншот зрения. Это, как я получаю вид своей деятельности в: getWindow().getDecorView().getRootView()
Everytime я сделать это, он получает весь экран, но с дополнительным белым пространством высоты StatusBar
«s выше Toolbar
. Я потерялся здесь, пожалуйста, спросите меня о какой-либо дополнительной информации, которую я должен был предоставить, но нет.
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 окна
Не могли бы вы показать мне снимок экрана? –
Я опубликовал скриншот и ... У меня внезапная ясность, я скоро отправлю ответ –