Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:如何拍摄截图并使其模糊?_Android - Fatal编程技术网

Android 安卓:如何拍摄截图并使其模糊?

Android 安卓:如何拍摄截图并使其模糊?,android,Android,我正在尝试制作一种定制的对话,它会有一个以前的屏幕(快照)作为背景,有点暗和模糊,好像失去了焦点 要做到这一点,我想,当对话启动时,应该拍摄一个屏幕截图,使其变暗、模糊,并将其作为对话的背景 你认为最好的方法是什么 谢谢 有一种方法,仅仅是一个模糊的技巧,你可以很容易地尝试。首先将位图缩小到一半大小,然后使用过滤将其放大回原始大小。我不知道结果如何 下面是使用此思想的简短代码示例。原始位图的比例越小,其“模糊”程度就越高。但是,根据一些实验,如果你使用小于一半的尺寸使用这种技术,它会变得非常像素

我正在尝试制作一种定制的对话,它会有一个以前的屏幕(快照)作为背景,有点暗和模糊,好像失去了焦点

要做到这一点,我想,当对话启动时,应该拍摄一个屏幕截图,使其变暗、模糊,并将其作为对话的背景

你认为最好的方法是什么


谢谢

有一种方法,仅仅是一个模糊的技巧,你可以很容易地尝试。首先将位图缩小到一半大小,然后使用过滤将其放大回原始大小。我不知道结果如何

下面是使用此思想的简短代码示例。原始位图的比例越小,其“模糊”程度就越高。但是,根据一些实验,如果你使用小于一半的尺寸使用这种技术,它会变得非常像素化。比我想象的要多

int width = bitmap.getWidth();
int height = bitmap.getHeight();
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, width / 2, height / 2, true);

Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);

Canvas canvas = new Canvas(bitmap);

Rect scaledRect = new Rect(0, 0, scaledBitmap.getWidth(), scaledBitmap.getHeight());
Rect origRect = new Rect(0, 0, width, height);
canvas.drawBitmap(scaledBitmap, scaledRect, origRect, paint);
paint.setColor(Color.argb(80, 0, 0, 0));
canvas.drawRect(origRect, paint);

最后两行在位图上绘制一个半透明的黑色覆盖层,使其更暗。也不是一个去,因为它只在阿尔法通道的作品。不幸的是。或者我只是在使用中遗漏了一些东西。

这在概念上很简单,但也有一些潜在的困难。你在哪里遇到困难?首先,我如何捕捉你自己的应用程序或其他人的应用程序的屏幕截图?你试过搜索堆栈溢出吗?@Roger-你可能想要这个:嗯。。。不是真的。“dialog.getWindow()…”给出了“类型AlertDialog.Builder的方法getWindow()未定义”。。。有什么想法吗?嗯。。。不是真的。“dialog.getWindow()…”给出了“类型AlertDialog.Builder的方法getWindow()未定义”。。。有什么想法吗?我想要的是。我不知道它是否适用于你的情况,但正如我所说的,这是我从来没有玩过的东西。