刚刚做技术调研,可以给一些优缺点的对比.

目前主流实现毛玻璃效果(高斯模糊)分大致三种方法:

一 利用RenderScript接口

利用现有Android结构,通过RenderScript调用底层接口实现高斯模糊计算.

// Remix Blurprivate void blur(Bitmap bkg, View view) {

RenderScript rs = RenderScript.create(getActivity());

Allocation overlayAlloc = Allocation.createFromBitmap(rs, overlay);

ScriptIntrinsicBlur blur =

ScriptIntrinsicBlur.create(rs, overlayAlloc.getElement());

blur.setInput(overlayAlloc);

blur.setRadius(radius);

blur.forEach(overlayAlloc);

overlayAlloc.copyTo(overlay);

view.setBackground(new BitmapDrawable(getResources(), overlay));

rs.destroy();

}

说明 :

这种方法直接利用Android系统提供的机制, 从代码实现上是最简单也相对高效的实现. 在此过程中遇到的很现实的问题是: 1. 当模糊半径 (radius)变大后会直接出现计算性能问题. 2. ScriptIntrinsicBlur脚本模糊半径不能大于25. 因此, 直接使用ScriptIntrinsicBlur不能得到模糊程度较高的图片.

考虑到高斯模糊是计算周边像素平均值,在模糊程度很高的情况下,逐点计算平均值从显示效果上优势并不明显.可以通过将图片压缩成小图,计算小图的高斯模糊, 再将小图放大的方法来模拟大半径高斯模糊的效果.

效果如图:模糊前/模糊后

二 在低版本Android中通过Java实现高斯模糊

可以参考如下代码实现

这种方式通过在Java层中直接实现高斯模糊算法.在大模糊半径和大图片情况下,性能会出现问题.基本目前只作为对低版本Android客户端的兼容性方案使用.

三 通过OpenGL直接实现

没有具体实践过, 可以参考muzei壁纸的实现, 无论从效果和实时性来讲都是最好的. 但需要根据需求来看是否真的有这样的实时性要求. 这种方式从显示效果上会优于第一种方法,甚至可以达到渐变的效果.但这些计算都是以耗电作为代价的. 作为Launcher这种系统级别的应用, 在显示效果差异并不明显的情况下, 建议综合考虑耗电量, 以及内存和计算性能的消耗.

如图:

android 实现磨砂效果_Android 5.0 下毛玻璃(磨砂)效果如何实现?相关推荐

  1. php下拉框选中效果,jquery模拟select下拉框效果

    最近开发一网站的过程中碰到个需求,没有使用传统的select下拉框,而是使用了现代比较美观的一些元素设计了一个下拉框.对于这种东东,第一反应就是使用jquery来模拟了,还好,网上找了下,很快就找到了 ...

  2. android r 新建分区_Android实现从下往上弹出视差效果(Activity)

    先看下效果 背景 现在很多App设计会存在浏览模式,在没有登录情况下点击相关用户操作会跳转到登录页面LoginActivity,登录页面跳转常见的为从左向右,从下往上等视差效果,下面就来讲讲开启时从下 ...

  3. android 动态获取全县_android 6.0之后动态获取权限

    1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...

  4. android金币动效_Android 仿余额宝数字跳动动画效果完整代码

    一:想都不用想的,有图有真相,看着爽了,在看下面源码 二:实例源码分析 ①:首先定义接口 package com.demo.tools.view; /** * 数字动画自定义 * * @author ...

  5. android 按钮顶级效果_Android 中按钮的点击效果

    Android 中按钮点击后的效果通常是通过更换图片,或者背景色来实现的. 之前做的一直都是手动写在点击事件里,今天发现了一种更合适的方法,写在xml文件中. 比如,我有两张图片,一张是点击前的bef ...

  6. Android 自定义view 实现点击 展示下拉选项效果

    思路: 使用PopWindow ,里面布局为listview,点击展示PopWindow,点击其他区域或者选择完成时 关闭PopWindow~ 关键点: 1,实现头部视图(本文名为:pop_out_t ...

  7. android 按钮顶级效果_Android 源码之button高亮效果

    android默认的button在点击以后有默认的高亮效果,但是默认的button比较丑,要替换成自己的按钮背景,采用的方法是: button.setBackgroundDrawable(drawab ...

  8. android ota不打包_android 6.0系统 make otapackage 错误

    android 6.0 系统:在make otapackage时,出现如下错误: unable to load device-specific module; assuming none using ...

  9. c#控件弹幕效果_Android 自定义View修炼-自定义弹幕效果View

    一.概述 现在有个很流行的效果就是弹幕效果,满屏幕的文字从右到左飘来飘去.看的眼花缭乱,看起来还蛮cool的 现在就是来实现这一的一个效果,大部分的都是从右向左移动漂移,本文的效果中也支持从左向右的漂 ...

最新文章

  1. java指令集_javap 指令集
  2. SQL中的join操作总结(非常好)
  3. java 魔数_Java 字节码结构解析
  4. 一文搞定Redis五大数据类型及使用场景
  5. MapReduce过程卡在reduce处的67%
  6. NickLee UI中间件 for asp.net 2.0版本
  7. python烟花代码
  8. 最好用的php编程软件_php 编程软件 php编程软件有哪些
  9. Java Web目前主流的框架以及正在兴起的框架
  10. Delphi中VCL库的原架构师Chuck Jazdzewski回忆Delphi 1的开发原则
  11. Coder往事之: 一些炫酷的特效 for web 前端 (一)
  12. unity hdrp的TAA
  13. 硕士学位答辩PPT制作技巧
  14. 太极图形课S1第06讲:光线追踪的概念与基础
  15. Nginx控制IP(段)的访问策略配置
  16. Linux工具的基本使用
  17. 数据处理--图片像素点聚类
  18. Win7下,使用VM虚拟机,安装苹果Mac OS经验分享
  19. liunx邮件群发服务器,邮件发送服务器 Postfix
  20. 科技有意思丨iPhone8新添AR功能?!你的肾还保得住吗

热门文章

  1. 用python定义一个员工类_python3 类的定义
  2. C#语法:委托与事件
  3. 类加载、类加载器、反射
  4. linux脚本实现复制,Shell脚本实现复制文件到多台服务器的代码分享
  5. 乐鑫代理启明云端分享| ESP32系列教程之五: Eclipse搭建esp-idf环境
  6. 启明云端分享:产品应用上,怎么选型ESP-12F\ESP-12E\ESP-12S\ESP-07S这四个模块
  7. 计算机多媒体应用软件有超媒体特点吗,计算机应用基础第三套试卷98分
  8. 两条平行导线同向电流_电磁学(9)——磁场对电流的作用,安培力
  9. 银行业务软件测试,银行业务软件系统测试研究
  10. arcmap创建空间索引_mysql搜索引擎你会用了么