Android应用开发—RecyclerView绘制蒙层
背景:如何在跨越两个或两个以上的item绘制一个view,该view需要跟随recyclerView的滑动而整体移动。
@Overridepublic void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {super.onDrawOver(c, parent, state);final View child = parent.getChildAt(1);if (child != null) {final int left = child.getLeft();final int right = child.getRight();final int top = child.getTop();final int bottom = child.getBottom();int rightV = (right - left) / 6;int leftV = (right - rightV) - VAUtils.dip2px(mContext, 225);int topV = bottom - VAUtils.dip2px(mContext, 16);int bottomV = topV + VAUtils.dip2px(mContext, 82);ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(mImageView.getLayoutParams());margin.setMargins(leftV, topV, rightV, bottomV);RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);mImageView.setLayoutParams(layoutParams);if (!imageClicked) {mImageView.setVisibility(View.VISIBLE);}//画笔final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);//圆心 x 坐标final float x = parent.getWidth() / 2 + left;圆心 y 坐标final float y = 100 + top;//半径final float radius = 100;//渐变着色器 坐标随意设置的final LinearGradient shader = new LinearGradient(x-50, 0, x+100, 200, Color.RED, Color.YELLOW, Shader.TileMode.REPEAT);paint.setShader(shader);//绘制圆c.drawCircle(x, y, radius, paint);}}
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {super.onDrawOver(c, parent, state);//画笔final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);//圆心 x 坐标final float x = parent.getWidth() / 2;圆心 y 坐标final float y = 100;//半径final float radius = 100;//渐变着色器 坐标随意设置的final LinearGradient shader = new LinearGradient(x-50, 0, x+100, 200, Color.RED, Color.YELLOW, Shader.TileMode.REPEAT);paint.setShader(shader);//绘制圆c.drawCircle(x, y, radius, paint);
}
Android应用开发—RecyclerView绘制蒙层相关推荐
- Android Studio开发RecyclerView遇到的各种问题以及解决(一)
Android Studio开发RecyclerView遇到的各种问题以及解决(一) 参考文章: (1)Android Studio开发RecyclerView遇到的各种问题以及解决(一) (2)ht ...
- Android开发之新手引导蒙层
因为是做公司内网开发,所以也没用到新手引导的这个功能.但是由于每次更新的时候更新内容已经写在上面,内部人员就是不看的情况下要求做了一个引导页.但是最后呢,还没用上.但是找了好久也找到了一个很好用的第一 ...
- Android游戏开发中绘制游戏触摸轨迹的曲线图
本篇文章主要来讲解怎样绘制游戏触摸轨迹的曲线图. 我们在onTouchEvent方法中,可以获取到触摸屏幕时手指触摸点的x.y坐标,如何用这些点形成一条无规则轨迹并把这条无规则轨迹曲线显示在屏幕上就是 ...
- 【歪门邪道】Android页面上快速实现蒙层引导需求
这几年工作发现一个定律,新年前一定有一个大项目,项目优先度一定高,排期一定倒着排,程序员一定要加班.就好像,缺了这个项目,发年终奖就亏了一样. 新需求有多个引导蒙层,蒙层需要漏出被引导的按钮区域,时间 ...
- Android Studio开发RecyclerView遇到的各种问题以及解决
是大神总结的,我直接提供链接了,以便以后学习 大神链接: 问题一和解决:http://www.cnblogs.com/yunfang/p/5830953.html 问题二和解决:http://www. ...
- Android游戏开发Android软件开发【教程三十篇】
Android软件开发之发送短信与系统短信库解析(三十) New Android软件开发之获取通讯录联系人信息(二十九) New Android软件开发之PreferenceActivity中的组 ...
- 《Android系统开发》笔记
<Android系统开发>笔记1:Android系统概述 Android四层架构: 1. Linux Kernel&driver层 a.依赖于Linux 2.6内核,包括安全性,内 ...
- android 线性布局蒙层,Android开发 - 掌握ConstraintLayout(一)传统布局的问题
在传统的Android开发中,页面布局占用了我们很多的开发时间,而且面对复杂页面的时候,传统的一些布局会显得非常复杂,每种布局都有特定的应用场景,我们通常需要各种布局结合起来使用来实现复杂的页面.随着 ...
- 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )
文章目录 I . FFMPEG ANativeWindow 原生绘制 II . FFMPEG 原生绘制流程 III . Java 层获取 Surface 画布 IV . 传递 Surface 画布到 ...
最新文章
- 我的android绘图学习笔记(二)
- 我的超级大魔王Cookie
- rsviwe32 7.6 授权_「复杂系统迁移 .NET Core平台系列」之认证和授权
- j2me手机游戏结构分析和实际小例子系列一 游戏背景和游戏精灵
- 为加快SAP Commerce Cloud在windows服务器上的启动速度,而禁用的一些服务
- 配置树莓派linux的内核和编译并将镜像拷贝至树莓派
- 分析 Web 资源的访问过程(Servlet 程序访问过程)
- 【ElasticSearch】Es 源码之 UsageService 源码解读
- 人工智能python营_贪心学习院人工智能python编程特训营
- 大数据智能分析的特征和能力
- pyqt5 自定义控件_说人话的PYQT5『1』
- 【SpringBoot】@springbootapplication 注解讲解
- 基于MicroPython实现ESP32+SSD1306的小恐龙游戏
- epc项目设计流程图_EPC工程总承包管理流程图解。
- latex标记html样式,latex标题字体大小和样式
- html中的布局方式,网页设计常见的5种布局方式
- cisco思科交换机的基本使用
- zookeeper之watcher
- git amend如何撤销
- Java实现洛谷 P1428 小鱼比可爱
热门文章
- codeforces 734A-C语言解题报告
- Android Studio安装问题及填坑
- Android设计模式之——解释器模式
- 12种食物最养男人 10种食物最养女人 太值得收藏了
- 《小狗钱钱》:理财首先应该有一种强烈的意识
- 深入浅出 消息队列 ActiveMQ
- 基于 Token 的身份验证方法
- D. Relatively Prime Graph
- if...elif...else...fi和case...esac的脚本条件判断式
- 20165222第一周查漏补缺