手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android中实现布局背景模糊化处理的方法
Android中实现布局背景模糊化处理的方法
摘要:在模仿IOS密码输入页面的时候发现其背景有模糊处理,于是了解了一下并记录下来,以便使用.在Android中具体实现方法如下查考http://...

在模仿 IOS 密码输入页面的时候发现其背景有模糊处理,于是了解了一下并记录下来,以便使用.在Android 中具体实现方法如下

查考 http://www.jb51.net/article/64781.htm

private void applyBlur() { // 获取壁纸管理器 WallpaperManager wallpaperManager = WallpaperManager.getInstance(this.getContext()); // 获取当前壁纸 Drawable wallpaperDrawable = wallpaperManager.getDrawable(); // 将Drawable,转成Bitmap Bitmap bmp = ((BitmapDrawable) wallpaperDrawable).getBitmap(); blur(bmp); }

下面之所以要进行small 和big的处理,是因为仅仅靠ScriptIntrinsicBlur 来处理模式,不能到达更模式的效果,如果需要加深模式效果就需要先把背景图片缩小,在处理完之后再放大.这个可以使用Matrix 来实现,而且这样可以缩短模糊化得时间

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) private void blur(Bitmap bkg) { long startMs = System.currentTimeMillis(); float radius = 20; bkg = small(bkg); Bitmap bitmap = bkg.copy(bkg.getConfig(), true); final RenderScript rs = RenderScript.create(this.getContext()); final Allocation input = Allocation.createFromBitmap(rs, bkg, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); final Allocation output = Allocation.createTyped(rs, input.getType()); final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); script.setRadius(radius); script.setInput(input); script.forEach(output); output.copyTo(bitmap); bitmap = big(bitmap); setBackground(new BitmapDrawable(getResources(), bitmap)); rs.destroy(); Log.d("zhangle","blur take away:" + (System.currentTimeMillis() - startMs )+ "ms"); } private static Bitmap big(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix.postScale(4f,4f); //长和宽放大缩小的比例 Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); return resizeBmp; } private static Bitmap small(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix.postScale(0.25f,0.25f); //长和宽放大缩小的比例 Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); return resizeBmp; }

【Android中实现布局背景模糊化处理的方法】相关文章:

基于Android中实现定时器的3种解决方法

android中添加按钮事件的方法

android实现横屏的代码及思路

Android实现Activities之间进行数据传递的方法

Android自动禁用布局里的所有子控件

Android开发之动画实现方法

Android里实现退出主程序的提示代码

解析Android中使用自定义字体的实现方法

Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享

android为按钮添加事件的三种方法

精品推荐
分类导航