我的 Android 应用中有一个相机预览。大家可能都知道它是由 android 中的 surfaceview
实现的。
在我的照片应用程序中,允许用户拍照,如果用户尚未登录,我想模糊相机预览(表面 View )如果用户已登录,我将显示正常预览(没有模糊)
像这样模糊
但是好像没办法
想到了一些事情,但我不知道如何实现它
- 使用模糊叠加并将其放置在表面 View 的顶部,但是您如何创建这样的模糊叠加?
另一种方法是改变窗口的属性,但是我不能做到
surfaceview
,getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
那么我们可以创建一个覆盖表面 View 的窗口并像这样设置标志吗?我不这么认为
谁能告诉我如何模糊相机预览,这是一个表面 View
注意:我正在尝试模糊作为相机预览输出的区域,所以它不像我在模糊静态图像,模糊区域会根据您将手机相机指向的位置而改变
最佳答案
执行此操作的最佳方法是拍摄控件的屏幕截图,对其应用模糊处理,然后将该图像显示在原始控件的顶部。这就是雅虎天气应用程序的工作方式以及谷歌建议您执行此类操作的方式。
渲染脚本会快速模糊。我也有一些代码,但目前手头没有。
这些可能会有所帮助:
http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android http://docs.xamarin.com/recipes/android/other_ux/drawing/blur_an_image_with_renderscript/
我还了解到,Android 中内置了一些方法可以执行此操作,但 API 不是公开的,因此我们无法使用它......这很糟糕。
关于相机中使用的Android模糊surfaceview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15565538/