艾阳Blog
不积跬步无以至千里,不积小流无以成江海。闻道有先后,术业有专攻。不忘初心,方得始终。
展开
-
Android 图片加载库改造
1、异步任务处理返回后,activity已经销毁,此时进行加载图片,会报异常You cannot start a load for a destroyed activity ,App会崩溃1). 一个是网络请求,但由于rxjava异常拦截的原因,不会崩溃@Overrideif (data!2) 另一个是其他异步任务回调中处理图片就会崩溃了,类似下边的代码@Overridetry {});}.start();finish();原创 2023-07-15 21:03:42 · 701 阅读 · 0 评论 -
Android App首页全局黑白化方案探索
关于黑白化页面,这几年是比较常见的场景。比如,在清明节或特殊时政,各大APP都会进行黑白化处理。普通小白刚接到需求的时一定会感觉是不是好麻烦,要搞一套换肤吗?下面有三种实现方案,一起来探索吧!最后咱们再总结一下黑白化方案:使用了 ColorMatrix 设置饱和度为 0,设置到 Paint 中,让根布局拿着这个 Paint 去进行重绘。原创 2023-06-12 11:41:07 · 656 阅读 · 0 评论 -
Android 手机号344格式化,字符串拼接和EditText输入框
国内手机号一般11位数字,在登录注册等页面经常会用到,其他信息介绍页面也可能会用到手机号的显示。原创 2023-05-10 10:20:18 · 354 阅读 · 1 评论 -
Android 动态代码设置view宽高参数,运行后UI大小没有改变问题
日常开发中遇到一个需求,就是根据业务逻辑,动态改变一个view控件的大小。这种需求也是比较常见的,但是小白比较容易遇到一个小问题,就是代码重新设置了view的宽高大小,运行后发现view没有发生改变。原创 2023-02-24 19:51:05 · 1393 阅读 · 0 评论 -
Android 增加布局圆角功能,支持背景裁切圆角
我们Android开发同学最常见、频繁画UI时会遇到有角度的布局。例如:通常,我们都会在drawble文件夹下创建Shape.xml去实现对吧?当然这样的代码实现方式没毛病。但是,项目大了业务繁杂,工程中会出现很多此类文件,显得非常臃肿,而且不方便复用,不利于研发效率提升。那么,我们就会思考,是否可以有一种能更快捷且优雅的方式实现这个圆角布局。原创 2022-11-16 22:33:27 · 1236 阅读 · 0 评论 -
Android Activity、Viewpager嵌套Fragmen生命周期分析总结
目录一、Fragment生命周期:二、fragment在replace()切换生命周期变化三、Activity嵌套Fragment的生命周期变化四、ViewPager 中 Fragment的生命周期五、交互知识总结1、与MainActivity沟通, 使用碎片中的控件:2、与MainActivity沟通,碎片中使用MainActivity的控件:3、Fragmen...原创 2017-02-20 17:41:52 · 1855 阅读 · 1 评论 -
Android View绘制及事件(一)屏幕的视图层级,窗口概念初识
系列推荐:Android View绘制及事件(二)setContentView()源码,LayoutInflater加载View的过程Android View绘制及事件(三)自定义View及View绘制流程Android View绘制及事件(四)自定义组合控件+约束布局ConstraintLayout+自定义控件属性Android View绘制及事件(五)View响应事件及分发过程...原创 2020-04-03 16:15:48 · 1597 阅读 · 0 评论 -
Android View绘制及事件(五)View点击事件响应及分发过程详解
它是一个包装了很多触摸事件的实体类,用于存储UI界面与用户交互时的事件信息,如事件类型(按下、抬起、滑动)、x\y坐标值、发生的时间等。触摸点在屏幕上的绝对坐标,坐标值相对于屏幕而言;基于该View的坐标值;getAction,4种常用类型:ACTION_DOWN、ACTION_MOVE、ACTION_UP、ACTION_CANCEL。getActionMasked,多2种:ACTION_POINTER_DOWN、ACTION_POINTER_UP。原创 2019-05-09 18:22:59 · 1730 阅读 · 1 评论 -
Android中Textview文本变化父布局宽度不变问题
这是一篇关于布局绘制刷新的小案例,实战经验总结分享。问题描述:一个 LinearLayout,宽和高都是自适应wrap_content。里面放一个TextView,宽和高都是自适应wrap_content。当TextView调用setText()方法改变文本显示时,LinearLayout的宽度只能跟着改变的问题。根据Android View绘制及事件(三)自定义View及View绘制流程。原创 2022-05-09 16:22:30 · 3474 阅读 · 2 评论 -
Android View绘制及事件(三)自定义View及View绘制流程
前言一、自定义View介绍二、View绘制流程2.1Measure()2.2 Layout()2.2 Draw()注意前言我们经常使用TextView、button等控件,但是有些同学对于它们是如何显示和扩展的却并不那么熟悉。而这一块的知识也进阶高手必备的,写这一篇文章是想把view绘制这块的技术全面总结一下。Activity作为应用程序的载体负责向用...原创 2019-06-14 12:10:50 · 1875 阅读 · 2 评论 -
Android View绘制及事件(四)自定义组合控件+约束布局ConstraintLayout+自定义控件属性
前言上一章《Android 自定义View前世今生,View绘制流程》介绍了自定义View的实现方式大致有三种:自定义组合控件、继承系统控件(如TextView、ImageView等)、继承View或ViewGroup。这章专门学习自定义组合控件实现方式,将多个控件组合成为一个新的控件,能够解决多次重复使用同一类型的布局的问题。另外介绍一下,本章将使用主流的约束布局ConstraintL...原创 2019-06-28 19:17:24 · 6226 阅读 · 1 评论 -
Android View绘制及事件(六)View刷新机制
目录前言一、流程图解二、方法解析1、RequestLayout()2、invalidate()3、postInvalidate()三、小结1、invalidate()和requestLayout()2、invalidate()和postInvalidate()前言在之前系列中《Android View绘制及事件(三)自定义View及View绘制流程》介绍了View的绘制流程。 这里在做一次补充一下对于调用view的刷新会走...原创 2022-05-07 19:14:39 · 1473 阅读 · 0 评论 -
Android View绘制及事件(二)setContentView()源码,LayoutInflater加载View的过程
前言通常情况下,我们创建一个Activity时,会通过setContentView来引入布局,将界面视图展现给用户看见。那么,为什么通过setContentView()就能将xml格式的布局文件加载到界面中呢? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sa...原创 2019-01-24 18:24:36 · 1627 阅读 · 0 评论 -
Android ViewPager Fragment 切换刷新数据,解决生命周期只走一次的问题
前言Activity的生命周期都应该熟悉,Fragment其标准生命周期也仅比Activity多出一些流程,如onCreateView(),比较好理解。了解Activity、Fragment的基础知识可以先转头去看下我的博文:Android Fragment项目中使用及生命周期分析认识ViewPager页面加载机制ViewPager的页面缓存机制默认是两个,如果有三个Fragment,实际上三个都...原创 2017-09-21 17:29:31 · 16794 阅读 · 3 评论 -
(六)RecycleView 回收复用机制总结
目录前言一、Recycle 类二、四级缓存三、缓存详解四、复用详解前言众所周知,RecycleView 本身就是一款非常优秀的可回收、复用的原生控件,有着极高的灵活性,能够在应用中承担展示大量数据的艰巨任务。在日常开发中,使用也非常广泛。本篇将一起了解一下 RecyclerView 内部是通过怎样的缓存复用机制来实现这一功能的。推荐阅读(一)RecycleView 初探回收复用,onCreateView和onBindView调用关系(二)RecycleView .原创 2020-07-14 14:08:31 · 868 阅读 · 0 评论 -
(七)RecycleView 性能提升、卡顿优化(绝对干货!!)
目录前言一、RecycleView 性能提升(1)卡顿原因:(2)优化提案:二、布局、绘制优化三、视图绑定与数据处理分离四、notifyxxx()局部刷新(1)常用的5个列表刷新(2)处理刷新闪烁问题五、改变mCachedViews的缓存六、共享RecycledViewPool(1)嵌套RecycleView卡顿原因(2)解决嵌套RecycleView卡顿七、惯性滑动延迟加载(1)快速滑动RecycleView卡顿原因:(2)解决快速滑动造成.原创 2020-07-15 20:39:05 · 3698 阅读 · 0 评论 -
(五)RecycleView 动态设置改变列表显示的高度,禁止滑动
推荐阅读(一)RecycleView 初探回收复用,onCreateView和onBindView调用关系(二)Android RecycleView实现吸附小标题的Demo(附源码)(三)RecycleView 自定义下拉刷新,上拉加载监听(四)RecycleView 滑动到置顶、Adapter局部刷新(五)RecycleView 动态设置改变列表显示的高度前言RecycleView 是一个可回收复用的列表控件,也是使用较普遍的。在使用时也会结合业务功能需求做出一些改变。比.原创 2020-07-09 18:58:50 · 3060 阅读 · 1 评论 -
(四)RecycleView 滑动到置顶、Adapter局部刷新
概述相信大家在项目中使用RecyclerView时,经常会遇到这样的需求:将RecyclerView滑动到指定位置,或者检索RecyclerView的某一项(各个项的高度不确定),然后定位滚动这到一项,将它显示。一般我们会用scrollBy、scrollToPosition、smoothScrollToPosition、scrollToPositionWithOffset四种常用方法。...原创 2019-11-28 11:58:14 · 2253 阅读 · 0 评论 -
(三)RecycleView 自定义下拉刷新,上拉加载监听
Android 使用RecycleView实现吸附小标题的Demo(附源码)Android 探究onCreateViewHolder和onBindViewHolder两者关系和调用次数前言上面两篇讲解了RecycleView创建和绑定子项的认识,特别是Recycleview的进行自定义子项装饰类ItemDecoration,实现了吸附标题的功能,其中涉及到了自定义View绘图技术点。...原创 2019-07-31 19:21:57 · 2133 阅读 · 0 评论 -
(二)Android RecycleView实现吸附小标题的Demo(附源码)
先上,效果图源码地址GitHub:https://github.com/aiyangtianci/StickyDecoration码云 : https://gitee.com/AiYangDian/StickyDecoration因为实现列表展示的数据和基础实现在上一章讲解了,请看上一篇:Android 探究onCreateViewHolder和onBindViewHolder两者关系和调...原创 2018-04-26 19:47:34 · 3320 阅读 · 3 评论 -
(一)RecycleView 复用机制onCreateView和onBindView调用关系
导语 As we all know-众所周知,RecycleView 在展示数据列表的页面替换Listview的趋势已然出现,现在网络上关于它的资料也是铺天盖地,我就不再介绍如何使用了。但是,我对RecycleView的Adapter还是比较感兴趣的,因为懂得了Adapter,对于RecycleView的扩展及优化会很有帮助。这篇文章,先了解一下 onCreateViewHold...原创 2018-04-26 16:53:29 · 64336 阅读 · 10 评论