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()未定义”。。。有什么想法吗?我想要的是。我不知道它是否适用于你的情况,但正如我所说的,这是我从来没有玩过的东西。