我喜欢iOS 7用于其通知和音乐弹出的样式,如下所示。
因此,我尝试在Android中实现这个东西。经过一些搜索,我找到了如何做到这一点。我尝试的方法如下。
1) 首先,我获取视图的根引用,并使用View的getDrawingCache()
函数对其进行截屏。
linearLayout.buildDrawingCache();
SoftReference<Bitmap> bitmap = new SoftReference<Bitmap>(
Bitmap.createBitmap(linearLayout.getDrawingCache()));
linearLayout.destroyDrawingCache();
2) 我相对于父元素取定位,并根据需要裁剪图像。
SoftReference<Bitmap> temp = new SoftReference<Bitmap>(
Bitmap.createBitmap(bitmap.get(), 0,
(parentHeight - childHeight), childWidth, childHeight));
3) 我使用一些算法使这个位图图片模糊化。(我使用了Android SDK的快速位图模糊 fastBlur效果)
4) 在叠加视图中设置它。
imageView1.setImageBitmap(Utils.fastblur(temp.get(), 8));
但是我的问题是,拍照需要时间才能产生模糊效果并裁剪图像,最后才能得到最终结果。而 iOS 的模糊处理非常快,就像抽屉从底部滑出时,它立即模糊了在其后面的屏幕。
有没有其他方法可以实现这个效果?因为使用我的方案,我不能每秒都拍摄屏幕并在抽屉每次移动时每秒进行1到4的所有处理。