android 布局背景模糊,Android_Android中实现布局背景模糊化处理的方法,在模仿 IOS 密码输入页面的时 - phpStudy...

Android中实现布局背景模糊化处理的方法

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

查考 /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;

}

相关阅读:

仅30行代码实现Javascript中的MVC

JS小功能(button选择颜色)简单实例

MySQL中的CONCAT函数使用教程

PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)

IOS入门笔记之地理位置定位系统

jQuery中animate动画第二次点击事件没反应

wordpress自定义url参数实现路由功能的代码示例

C++实现打印1到最大的n位数

Win8系统怎么重装IE浏览器?Win8重装IE图文教程

gulp-htmlmin压缩html的gulp插件实例代码

PHP按行读取、处理较大CSV文件的代码实例

ajax的json传值方式在jsp页面中的应用

php实现文件下载功能的几个代码分享

一些HTML代码的编写风格建议小结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值