Android 模仿H5高斯模糊发光阴影
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高斯模糊发光阴影相关推荐
- Android Webview H5 秒开方案实现
本文首发于微信公众号「玉刚说」 原文链接:Android Webview H5 秒开方案实现 前言 现在许多app都嵌入了H5页面, 然而WebView加载速度慢这个问题却一直影响着用户的体验, 所以 ...
- android 和h5交互,Android中与H5的交互
Android日常开发中,常常会遇到加载H5页面的情况,于是少不了与H5页面的交互问题.具体表现在Android调用H5代码及H5中调用Android代码两种情况. 测试页面 test.png 这里我 ...
- android studio运行手机时出错怎么解决_小程序 android ios h5解决方案
你现在开发android,ios,小程序用什么工具,怎么开发的?还在单个端的开发吗?今天我们主要讨论的是一次开发多端使用的技术,也是这两年比较流行的开发方向.现在的终端太多了,app两个端androi ...
- android手机微信收藏功能实现,Android模仿微信收藏文件的标签处理功能
最近需要用到微信的标签功能(如下图所示).该功能可以添加已有标签,也可以自定义标签.也可以删除已编辑菜单.研究了一番.发现还是挺有意思的,模拟实现相关功能. 该功能使用类似FlowLayout的功能. ...
- WebView详解与简单实现Android与H5互调
为什么要学习Android与H5互调? 微信,QQ空间等大量软件都内嵌了H5,不得不说是一种趋势.Android与H5互调可以让我们的实现混合开发,至于混合开发就是在一个App中内嵌一个轻量级的浏览器 ...
- Android 系统(229)---Android与h5交互专题
[Android开发进阶系列]Android与h5交互专题 1 交互原理 1.1 webview如何加载H5页面 我们都知道在Android中是通过webView来加载html页面的,根据HTML文件 ...
- android studio上下滚动菜单,Android模仿美团顶部的滑动菜单实例代码
前言 本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 ViewPager ...
- Android与H5相互接口调用及Android端接口整理
近几年随着HTML5的功能越来越强大,H5页面的性能虽然稍差,单其灵活性很高,更新页面成本比原生小很多,一个页面可以被android和ios同时使用开发成本也比较低,所以移动端的开发已经不是单单的原生 ...
- android让字体左右对齐,Android 模仿微信读书文字左右对齐效果
原标题:Android 模仿微信读书文字左右对齐效果 本文作者 作者:Amter https://www.jianshu.com/p/020786e22a6f 左右对齐的文字效果,很常见,在大多数文章 ...
最新文章
- ESXi6.7安装流程和bug处理
- HTTP 无状态中的 状态 到底指的是什么?
- git 开源 java_开源中国GIT中Java分类下TOP10项目的活动情况分析
- 2018 ACM ICPC Asia Regional - Seoul B.Cosmetic Survey
- 897. 递增顺序查找树-未解决
- 工作293:新的打印操作
- 3-31Pytorch与auto-variabletensor
- 1000道Python题库系列分享24(41个客观题,numpy专题)
- Veeam FAQ系列转载(一):备份
- java参数默认值_java函数参数默认值
- k3 lede刷官改_斐讯K3路由LEDE固件刷回官方原版固件
- 手把手教你从AVI转RMVB的压制全程(转)
- docker学习总结X - 碰到的问题
- QComboBox选项置灰、不可选择、文本颜色(汉字颜色)
- 【UVM实战】第七章:UVM中的寄存器模型(2)简单的寄存器模型
- 机器人搏击大赛冠军_喜报|2019中国智能机器人格斗大赛,石大学子在轮式自主格斗A、B组中包揽双冠...
- 【笔记】最佳日志管理工具:51个有用的日志管理、监视、分析等工具
- 音频:听声识曲,音乐均衡器与傅立叶变换算法,双音多频(DTMF)
- win10安装解压版mysql详细教程
- 定位导航方案OA系统搭建在特殊环境下的适用说明