​​​​​​​public class MaskFilterView extends View {private Paint lightPaint;/*** 发光范围*/private int radioRadius = 15;​​​​​​​/*** 圆角大小*/private int roundRadius = 15;/*** 颜色*/private int blurColor = Color.WHITE;private RectF rectF;private int left;private int top;boolean isFirst = false;//解决软键盘弹出重新计算了左上的坐标点public MaskFilterView(Context context) {super(context);init();}public MaskFilterView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);init();}public void init() {lightPaint = new Paint();setLayerType(LAYER_TYPE_SOFTWARE, null);setBackgroundColor(Color.TRANSPARENT);lightPaint.setColor(blurColor);lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.INNER));rectF = new RectF();isFirst = true;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {if (isFirst) {left = getLeft();top = getTop();isFirst = false;}super.onMeasure(widthMeasureSpec, heightMeasureSpec);}public void setBlurType(int blurColor, int radioRadius, int roundRadius, int blurMode) {this.radioRadius = radioRadius;this.roundRadius = roundRadius;this.blurColor = blurColor;lightPaint.setColor(blurColor);switch (blurMode) {case 0:lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.INNER));break;case 1:lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.NORMAL));break;case 2:lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.SOLID));break;case 3:lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.OUTER));break;}invalidate();}/* onDraw: 30.0 30.0 1170.0  290.0*/@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);rectF.top = (top + radioRadius);rectF.left = left + radioRadius;rectF.right = (left + getMeasuredWidth() - radioRadius);rectF.bottom = (top + getMeasuredHeight() - radioRadius);
//        Log.i("TAG", "onDraw: " + rectF.top + " " + rectF.left + " " + rectF.right + "  " + rectF.bottom);canvas.drawRoundRect(rectF, roundRadius, roundRadius, lightPaint);}}

效果如下:

Android 模仿H5高斯模糊发光阴影相关推荐

  1. Android Webview H5 秒开方案实现

    本文首发于微信公众号「玉刚说」 原文链接:Android Webview H5 秒开方案实现 前言 现在许多app都嵌入了H5页面, 然而WebView加载速度慢这个问题却一直影响着用户的体验, 所以 ...

  2. android 和h5交互,Android中与H5的交互

    Android日常开发中,常常会遇到加载H5页面的情况,于是少不了与H5页面的交互问题.具体表现在Android调用H5代码及H5中调用Android代码两种情况. 测试页面 test.png 这里我 ...

  3. android studio运行手机时出错怎么解决_小程序 android ios h5解决方案

    你现在开发android,ios,小程序用什么工具,怎么开发的?还在单个端的开发吗?今天我们主要讨论的是一次开发多端使用的技术,也是这两年比较流行的开发方向.现在的终端太多了,app两个端androi ...

  4. android手机微信收藏功能实现,Android模仿微信收藏文件的标签处理功能

    最近需要用到微信的标签功能(如下图所示).该功能可以添加已有标签,也可以自定义标签.也可以删除已编辑菜单.研究了一番.发现还是挺有意思的,模拟实现相关功能. 该功能使用类似FlowLayout的功能. ...

  5. WebView详解与简单实现Android与H5互调

    为什么要学习Android与H5互调? 微信,QQ空间等大量软件都内嵌了H5,不得不说是一种趋势.Android与H5互调可以让我们的实现混合开发,至于混合开发就是在一个App中内嵌一个轻量级的浏览器 ...

  6. Android 系统(229)---Android与h5交互专题

    [Android开发进阶系列]Android与h5交互专题 1 交互原理 1.1 webview如何加载H5页面 我们都知道在Android中是通过webView来加载html页面的,根据HTML文件 ...

  7. android studio上下滚动菜单,Android模仿美团顶部的滑动菜单实例代码

    前言 本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 ViewPager ...

  8. Android与H5相互接口调用及Android端接口整理

    近几年随着HTML5的功能越来越强大,H5页面的性能虽然稍差,单其灵活性很高,更新页面成本比原生小很多,一个页面可以被android和ios同时使用开发成本也比较低,所以移动端的开发已经不是单单的原生 ...

  9. android让字体左右对齐,Android 模仿微信读书文字左右对齐效果

    原标题:Android 模仿微信读书文字左右对齐效果 本文作者 作者:Amter https://www.jianshu.com/p/020786e22a6f 左右对齐的文字效果,很常见,在大多数文章 ...

最新文章

  1. ESXi6.7安装流程和bug处理
  2. HTTP 无状态中的 状态 到底指的是什么?
  3. git 开源 java_开源中国GIT中Java分类下TOP10项目的活动情况分析
  4. 2018 ACM ICPC Asia Regional - Seoul B.Cosmetic Survey
  5. 897. 递增顺序查找树-未解决
  6. 工作293:新的打印操作
  7. 3-31Pytorch与auto-variabletensor
  8. 1000道Python题库系列分享24(41个客观题,numpy专题)
  9. Veeam FAQ系列转载(一):备份
  10. java参数默认值_java函数参数默认值
  11. k3 lede刷官改_斐讯K3路由LEDE固件刷回官方原版固件
  12. 手把手教你从AVI转RMVB的压制全程(转)
  13. docker学习总结X - 碰到的问题
  14. QComboBox选项置灰、不可选择、文本颜色(汉字颜色)
  15. 【UVM实战】第七章:UVM中的寄存器模型(2)简单的寄存器模型
  16. 机器人搏击大赛冠军_喜报|2019中国智能机器人格斗大赛,石大学子在轮式自主格斗A、B组中包揽双冠...
  17. 【笔记】最佳日志管理工具:51个有用的日志管理、监视、分析等工具
  18. 音频:听声识曲,音乐均衡器与傅立叶变换算法,双音多频(DTMF)
  19. win10安装解压版mysql详细教程
  20. 定位导航方案OA系统搭建在特殊环境下的适用说明

热门文章

  1. 2022最新python100个实战练手项目,【附源码】,快来学习起来吧!
  2. 有理数加法+有理数均值+排列枚举
  3. Prim / Kruskal - 局域网 - 洛谷 P2820
  4. 医药、档案、全价值链知识管理等多款产品解决方案在鸿翼云生态大会上发布
  5. 物 理 学 简 介(二)
  6. 「企业安全架构」EA874:信息安全架构
  7. MAC下安装REDIS和REDIS可视化工具RDM并连接REDIS
  8. 图形解锁验证码破解(附Python代码)
  9. 彻底摒弃流量主导的发展模式 才能真正让电商走出流量的怪圈
  10. kuangbin 专题一 简单搜索