- 博客(13)
- 资源 (5)
- 收藏
- 关注
原创 Paging失败重试机制
Jetpack-Paging失败重试机制需求描述解决方案源码解析1、寻找retry()retry()触发条件需求描述使用Paging进行分页请求,失败后重新发起。本来很简单的一个问题,拜官方demo PagingWithNetworkSample 所赐,失败后重试机制用的是private var retry: (() -> Any)? = null,既然官方demo都这么写,那我们也照着来一份。一顿操作后,出问题了。由于全面向协程coroutines靠拢,rxjava没有引入,DataSour
2020-06-02 17:10:15
853
原创 担心冗余代码,一行注解搞定运行时权限
担心冗余代码,一行注解搞定运行时权限)实现方式关键代码实现方式暂时只提供了注解反射、apt两种方式,aop等有时间再加注解反射流程图:apt方式:主要流程和注解方式一样,activity中添加对应的注解(需要权限、提示用户为何要开启权限、拒绝权限、用户选择不再询问后的提示),在process方法生成的类中处理权限请求逻辑,调用对应的注解方法关键代码注解反射:/** * 通过...
2019-12-03 09:37:46
266
原创 Android UI - 自定义不规则控件及其点击事件
Android UI - 自定义不规则控件及其点击事件)效果实现分析关键代码效果实现分析1、顶部是由两个控件叠加的,点击上面一张图片的透明处,会把点击事件传递给下面的控件,关键API:bitmap.getPixel,获得点击处的color,如果是透明,不处理点击事件;2、中间的谷歌logo是用自定义控件画的,点击事件处理同上;3、底部的控件是用自定义控件画的,点击事件的处理是通过AP...
2019-10-26 12:39:22
759
原创 Android UI - 粒子爆炸特效
Android UI - 粒子爆炸特效效果实现分析关键代码源码效果实现分析首先动画效果需要在一个位于顶层的view上绘制,目的是不被其他控件遮挡。添加点击事件,触发后给控件加一个抖动动画,结束后开始粒子爆炸效果,爆炸结束后恢复原状。所有粒子放在一个二维数组里,由动画管理器进行管理,粒子工厂得出每个粒子的颜色、位置、半径、透明度,给二位数组赋值,爆炸特效启动后,在view的onDraw...
2019-10-22 15:40:56
797
原创 手机没有微博客户端时,调用授权登录接口SsoHandler.authorize提示“Application requires permission to access the Internet"的问题
测试反馈说使用微博第三方登陆时弹出“Application requires permission to access the Internet",之前使用并没有发现这个问题,那就是微博SDK版本的问题了。我用的是4.3.7,换成4.3.6就没这个问题了。首先来看一下弹出弹窗的代码:if(!NetworkHelper.hasInternetPermission(this.mAuthActiv...
2019-05-08 10:19:21
702
原创 android:ellipsize="end"在ConstraintLayout中无效的问题
最近在项目中使用android:ellipsize="end"无效,经过排查,发现不是没有省略号,而是已经超出了屏幕。经过分析,我觉得是对ConstraintLayout不够了解,下面贴一下我之前的代码: <TextView android:id="@+id/tv_organization" android:layout_width="wra...
2019-04-28 15:35:52
4422
4
原创 仿微博首页顶部导航
微博首页顶部的导航条跟随viewpager左右伸缩滑动,还带有一定的渐变色,滑动的时候很有意思,我照着做了一个: 布局很简单,顶部两个textview+自定义view,底部一个textview,重点就在自定义view,先来解决渐变和弧度: 1、初始化paint mPaint = new Paint(); mPaint.setAntiAlias(true);//设置抗锯齿 mPaint.set
2017-12-11 17:06:09
1252
3
原创 基于android的微信机器人
之前用过基于web版微信的机器人,但是有几个缺点:比如新号不能登录,经常被封等问题。app版的微信机器人原理是模拟人工点击,能避免web版的很多问题,缺点是速度比较慢,成本比较高。目前实现的功能是自动回复消息、主动发送消息、同意好友申请。 先上个图感受一下: 1、准备工作:老版本微信,我用的是6.5.10,之所以不用最新版是因为聊天界面的文本区老版本是textview,新版本改成了view,
2017-10-26 17:49:40
4627
原创 Volley 快捷使用
很多人使用volley进行http请求,这里我介绍一下一种相对快捷的使用方式。 先来看一下最终效果:private void httpRequest() { MyHttpRequest.getInstance().loginRequest(this, "phone", "code", new ZYHttpHandler(t
2017-02-07 10:09:39
272
原创 基于android studio自动打包
由于我们在微信开发平台填写的应用签名是根据自己创建的签名文件打包的app,所以在使用微信分享、支付的时候,app需要打包才可以唤起微信,这样一个过程在开发当中是难以忍受的,需要studio在每次Run的时候自动打包。打开app下build.gradle,在android下填写签名文件的基本信息:然后设置在debug中引用: 大功告成,每次调试studio会自动打包debug版本的app。坏处:bu
2016-12-28 16:45:16
370
原创 Android状态栏沉浸式模式下全屏、修改颜色
偶然在github上发现了沉浸式模式实现比较简单的一种方法,效果图:代码实现:/** * 设置状态栏全透明 * * @param activity 需要设置的activity */public static void setTransparent(Activity activity) { if (Build.VERSION.SDK_INT KITKAT) {
2016-12-07 15:07:08
1163
原创 Android仿QQ实现聊天功能
前段时间下载了Android仿QQ界面和聊天的Demo,发现很有意思,于是研究了一下并自己在此基础上集成环信实现了在线聊天功能,并加入了炫酷的背景色渐变的启动页 ,有动画效果的dialog,与大家分享下。感谢项目中的原版demo。
2016-04-03 16:01:27
7632
3
Android仿QQ界面基础上基于环信实现聊天功能
2016-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人