`

如何实现Android 布局背景模糊化处理

阅读更多

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

查考 http://www.cnblogs.com/lipeil/p/3997992.html

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;
}

 

 

 

 

 

0
3
分享到:
评论

相关推荐

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

    在模仿 IOS 密码输入页面的时候发现其背景有模糊处理,于是了解了一下并记录下来,以便使用.在Android 中具体实现方法如下 查考 //www.jb51.net/article/64781.htm private void applyBlur() { // 获取壁纸管理器 ...

    blur android 高斯模糊 背景模糊

    `blurUtils`是一个专门为Android开发者设计的工具包,用于快速实现背景模糊效果。它包含了一些预定义的方法,可以方便地将一个Bitmap对象模糊化。使用这个工具包,你可以避免编写复杂的图像处理代码,只需几行简单的...

    Android模糊处理简单实现毛玻璃效果

    实现效果大家都知道了,如何在Android中实现呢,说白了就是对图片进行模糊化处理,小编先给大家讲一下Android高级模糊技术的原理,如下: 首先我创建了一个空的bitmap,把背景的一部分复制进去,之后我会对这个...

    Android 实现模糊半透明效果(水玻璃特效)

    将半透明和模糊效果结合起来,你可以在模糊处理后的Bitmap上设置一个半透明的覆盖层,如使用一个带有透明背景的Layout,这样可以同时实现模糊和半透明的效果。例如: ```xml android:layout_width="match_...

    Android背景滑动模糊的一种实现

    总的来说,Android背景滑动模糊的实现涉及到Android的图像处理、动画系统、多线程编程等多个方面,对于提升用户体验有着显著的作用。在实际开发中,开发者可以根据设备性能和应用场景选择合适的模糊实现方式,确保...

    Android 实现对话框圆角 模糊图片功能

    总结起来,创建具有圆角和毛玻璃效果的对话框是Android开发中的常见需求,可以通过自定义布局、使用`RenderScript`进行模糊处理以及调整`DialogFragment`的设置来实现。同时,`PopupWindow`提供了更丰富的自定义选项...

    Android实现个人中心

    对于磨砂头像背景,可以使用`android:background="@drawable/blur_background"`,其中`blur_background`是一个模糊效果的图片,可以通过工具处理原图得到,或者在运行时使用` Renderscript`进行实时模糊处理。...

    android项目下对图片高斯模糊毛玻璃自定义view

    在Android开发中,实现图片的高斯模糊效果和毛玻璃效果是常见的需求,尤其是在创建具有现代感和美观界面的应用时。本项目旨在教你如何在Android项目中创建一个自定义View,用于实现高斯模糊和毛玻璃效果,并且允许...

    android popupwindow 底部灰色背景

    3. **设置背景色**:如果布局背景颜色不足以满足需求,我们可以直接在代码中修改PopupWindow的背景。这可以通过`setBackgroundDrawable()`方法实现,传入一个ColorDrawable对象,如: ```java popupWindow....

    Android 毛玻璃背景处理

    2. **模糊Bitmap**: 模糊化Bitmap可以通过多种方式实现。一种常见的方法是使用第三方库,如`android-gpuimage`或者自定义模糊算法。例如,`android-gpuimage`库允许你在GPU上进行模糊处理,提高性能。如果你选择...

    Android应用源码之仿 [Tidy相册] 背景模糊效果.zip

    1. **图像处理**:在Android应用中,实现背景模糊效果通常涉及到图像处理技术。这可能包括对原始图片进行灰度化、降采样、滤波等操作。在[Tidy相册]案例中,可能采用了高斯模糊或者快速模糊算法来处理图片,以达到...

    Android高级应用源码-仿 [Tidy相册] 背景模糊效果.rar

    2. **图片处理库**:为了实现背景模糊,可能用到了如GLIDE、Picasso或Fresco等图片加载库。这些库不仅用于图片的加载和显示,也可能包含了图片处理的功能,比如模糊效果。 3. **渲染背景模糊**:在Android中,可以...

    android 磨砂透明效果的dialog

    总结来说,要实现一个带有磨砂透明效果并且点击Dialog外部自动退出的功能,你需要创建自定义布局,设置背景透明度和模糊效果,自定义Dialog类并处理触摸事件。这个过程涉及到Android UI设计、自定义组件以及事件监听...

    Android-realTimeBlurView2一个实时高斯模糊方案支持任意图形(只要你能画出来)任意覆盖色

    这种模糊效果使得图像边缘平滑,同时保持了图像的细节,广泛用于背景模糊、过渡效果等场景。在Android中,实现高斯模糊通常涉及对图像进行多次卷积操作,计算量较大,因此对性能有较高要求。 二、实时模糊 ...

    安卓Android源码——仿 [Tidy相册] 背景模糊效果.zip

    以上就是实现[Tidy相册]背景模糊效果的关键知识点,通过这些技术,开发者可以为自己的Android应用添加美观且响应式的背景模糊效果。在实际开发中,可以根据项目需求进行调整和优化,打造出个性化的视觉体验。

    Android验证码的实现

    在Android应用开发中,验证码(CAPTCHA)是...总之,Android验证码的实现涉及自定义控件设计、随机字符串生成、图像处理、事件监听等多个方面。通过合理的设计和实现,可以在保护应用安全的同时,提供良好的用户体验。

    Android-Blur-Launcher,模糊发射器建立在谷歌的Nougat发射器3.zip

    这意味着全世界的开发者都可以查看其内部实现,学习如何在Android平台上实现模糊效果,或者在此基础上进行二次开发,创建属于自己的个性化启动器。这对于技术社区来说是一笔宝贵的财富,能够促进技术交流和创新。 ...

Global site tag (gtag.js) - Google Analytics