- 博客(27)
- 收藏
- 关注

原创 简易App内部消息通信
之前文章介绍了用广播去通知界面更新,这会儿又无法满足我的要求广播进行消息通信广播的好处不需要创建消息类型实体便可一对多或是一对一发送系统内置,兼容性好我现在又为什么不满足于广播?我只能进行简单的收发,时间久了以后,具体的行为无法获知无法传递非序列号对象广播较重耦合度不高不好扩展我的需求和广播一样,这个消息要一对一发送(或者一对多发送)同时,我不想建大量的消息类型(即使这个类型是
2018-02-23 18:09:17
773

原创 Android权限管理的封装
由于公司兼有RN项目和原生项目,在做RN项目的时候,通过拜读源码,发现写的挺好的,权限的回调与activity分离,只与当前的调用模块有关(意思即使相同的requestCode也互不影响),因此这次在原生项目也模仿了一个同样的权限检查与回调模块 下面上具体代码(工具核心代码用代码块,部分代码采用截图)public class PermissionUtils { public s
2016-12-20 15:52:07
793
原创 协调者布局头部无法上滑的浅析
场景某个界面的头部HeaderBehavior是动态生成的,高度不定,某次在头部超过整屏的时候,上滑显示列表,再下拉,当我再次想要上滑的时候,发现无法滑动了原因协调者布局会根据手指触摸的落点是否在头部布局的范围内来判断由HeaderBehavior来处理滑动还是RecycleView或者NestedScrollerView来处理滑动 case MotionEvent.ACT...
2018-06-27 15:47:12
558
原创 ViewStub标签与merge标签冲突
场景项目优化布局,将layout全部模块化,采用了merge标签,在ViewStub引用的一个文件中include了merge标签的布局,导致在include下方的元素全部无法显示下面的先占坑,以后再说...
2018-06-22 14:38:41
712
原创 解决<merge>标签下高度无效
起因开启开发者模式里的过渡绘制以后,发现界面上封装的组件有冗余优化的空间背景自定义View继承了一个ViewGroup,在XML文件写的布局,根节点从RelativeLayout(LinearLayout,FrameLayout同理)改成了merge,并添加了parentTag为RelativeLayout来达到减少一级嵌套造成的结果这个自定义View你不知道他的父级组件是谁,...
2018-06-12 10:21:42
733
原创 自定义点赞组件
仿即刻点赞效果 即刻做的真的是很不错,也是在看了他们的点赞效果后,对比目前我项目中的点赞,老脸一红 恰逢当时正在看HenCoder的关于绘制的文章,那么来仿一个即刻点赞的原效果 仿写效果 需求分解文字部分 正向增加时,旧数字从中间位置向上移除,新数字从下方向中间添加,透明度变化负向减少时,旧数字从中间位置向下移除,新数字从上方向中间添加,透明度变化计算需...
2018-05-23 14:46:19
1055
原创 setDataSource RuntimeException 0xFFFFFFEA
背景:获取本地视频第一帧MediaMetadataRetriever在调用setDataSource的时候,7.0以下无问题,用的是setDataSource(String path,Map map),7.0以上崩溃,报RuntimeException 0xFFFFFFEA提示和fileprovider有关,感觉和7.0的适配有关系,但是还是先查了一遍stackoverflow,没有找到
2018-05-08 11:19:18
7771
6
原创 git操作提示dst refspec XXX matches more than one
做新一阶段的开发时,习惯性开了一个新的分支,取名和version一样,结果和上次发版打的tag重名了,于是想删掉,重新推,结果无法删除网上搜了一下,说是tag名字不能和分支名字取一样1.先删除tag,再删除分支2.重新打tag
2018-04-23 15:26:24
7629
1
原创 键盘弹出时,EditText上移的距离
看了下网上,要么是更改windowSoftInputMode,要么是套一层布局为ScrollerView实际上远不用这么麻烦,只要给EditText增加paddingBottom的间距就好了
2018-04-16 13:50:06
3105
原创 Fragment中使用ButterKnife一个可能引发的问题
场景:ViewPager中挂载了2个以上的fragment操作步骤及结果:切换到第三个Fragment,然后发送消息通知,第一个Fragment接收到以后对控件操作,控件报空,崩溃原因:ViewPager没有设置缓存策略,切换到第三个的时候,第一个Fragment解绑了解决方案:在这种多Fragment中小心操作Fragment,或者对ViewPager配置缓存策略PS:虽
2018-03-31 16:26:28
2725
原创 Jsoup之NoClassDefFoundError
项目中需要用到jsoup解析网页,但是真正用的时候却报了NoClassDefFoundError异常,上了stackoverflow上寻找答案,发现这么一条答案意思是关了multiDexEnabled后能好,但是项目方法数就是超标了,还非得开启不可,那么有可能就是因为我既开启了multiDexEnabled,又没处理好导致的,重新找资料,发现我的Application没有去继承Mult
2017-12-21 16:01:28
773
原创 自定义气泡菜单
先占个坑,下次写,附上截图 效果图 正文 说起做这个组件的前言,我在还没做以前还以为是UI给一个图,里面放布局填充,图作为背景,后来发现越来越多类似长短不一,颜色不一的菜单,如果是图片的话,可就太折腾了首先分解需求,会发现,刨除里面的子view布局不管,会发现有以下几点尖角(三角形) 尖角的方位尖角的高度尖角的底边宽度圆角方形圆角radius设置尖角以后,方块图形本身需要相对
2017-09-04 14:17:41
1529
原创 返璞归真,运用Android广播机制来通知界面刷新
大家在进行业务开发的时候,A界面跳转到B界面,B界面进行操作后,反过来通知A界面重写刷新界面,这个逻辑是非常非常常见的常用的手段通过Activity的一些回调方法(这里假设activity)获取Activity实例来强制调用方法(前提是方法名暴露出来)EventBus或者RxBus这类通信工具去post一个消息通过Handler等等…. 就拿我自己来说,我之前是使用EventBus
2017-09-02 06:37:52
6159
原创 bintray账户创建
需要关联邮箱,且不能是网易邮箱和QQ邮箱,但是我们可以绕个弯,用foxmail,相当于用QQ邮箱一个别名,在QQ邮箱里可以设置foxmail
2017-05-03 16:12:18
2251
原创 AutoLayout根布局适配问题
弘洋大大的UI适配库,实现了在不同设备上的自动适配,非常方便附上链接: Android AutoLayout全新的适配方式 堪称适配终结者遇到的问题:在LayoutInflater.from(getContext()).inflate(resource,parent,false),根布局即parent自身的数值不被转化关于inflate(getContext(), resource, null)和
2017-04-19 15:22:15
2259
原创 性能探究之onMeasure
性能探究之onMeasure 虽然如今RecycleView大行其道,但作为老牌控件listview仍应用广泛,但真正使用时,由于业务上的需求以及开发人员的理解不深入,使得listview性能并不十分高,造成卡顿那么先从以下几点进行测试父布局类型(相对,线性)布局嵌套深度XML布局代码<LinearLayout xmlns:android="http://schemas.android.
2017-04-18 17:09:19
740
原创 fragment下使用ViewFlipper
背景:广告位用ViewPager装载,但是ViewPager适合数量固定的子View,在做切换tab动态刷新数量的时候出了各种问题,例如:java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notif
2016-12-29 17:26:09
1296
原创 Android混淆配置造成的反射问题
在项目中调试的时候因为用到了反射,但是由于混淆文件并没有对反射的类做处理,导致类被混淆使得找不到该类需要在混淆文件中将该类配置上去,比如另外因为在debug和release模式下同时打开了混淆,调试的时候是会提示找不到该变量的,这时候可以加上比如虽然这样可以在调试的时候看到混淆下的变量名,但是建议还是不要在debug模式下打开混淆开关了(因为测试混淆是否对业务产生影响)
2016-12-16 18:47:27
5008
转载 部分机型自定义camera进入黑屏
项目中用到了自定义camera,后发现部分机型几率性进入会黑屏,log中打出app passed NULL surface后进行了延迟处理以后,成功解救了黑屏问题(虽然这么说,但是在进入的一瞬间,仍然是黑屏,surfaceview的默认颜色。无妨,不影响)出处:http://blog.csdn.net/yxq408576080/article/details/50515668
2016-12-13 15:54:30
3119
原创 未捕获的异常导致crash
通常我们在可以预见的可能出现异常的手动调用try catch来捕获代码片中的异常,防止app直接崩溃,或者即使没有try catch,通常崩溃以后,日志里会打出具体的异常信息,并提示具体在哪一个类,哪一行出现错 但博主之前遇到的问题就不在此类范围之内,app直接崩溃,并且没有明显的异常信息,且看error信息 提示Channel is unrecoverably b
2016-11-05 13:36:05
1136
原创 React Native添加Android原生模块
新项目决定开始使用React Native,故也不得不学习新的知识。React Native简介此不做赘述,官网有详细的介绍。因RN出来的时间还算很短,所以很多东西并不是很完善...比如第三方库的丰富度上... 拿真实例子举例,我这边的截图功能采用的是react-native-view-snapshot这个第三方截图....但是忘源码一看,大写的懵逼,Android竟然是暂不支持的
2016-08-15 18:40:14
3569
原创 自定义Toast及动画的二三事
实际案例中,系统的Toast经常无法满足我们的需求,那么作为开发人员,就难免要去自定义一个我们自己的Toast... 关于Toatst的系统的源码这里不想赘述,因为网上有很多(至少我也是上网查的),但是也仅限于介绍了源码和简陋的Demo....本篇直奔主题,介绍我在项目中真实用到的Toast... 先附上一段别人关于Toast源码的介绍(恩,我也是看的他的,才一步
2016-06-28 00:28:37
4419
原创 Android防止多次点击
该问题始于真实案例中: 在做公司项目的时候,移交测试的时候,反馈连续点击提交信息的按钮,会多次post数据到服务器,导致产生了错误的重复数据 在网上寻找答案,发现网上的答案多数是创建一个新的myButton类继承button,重写其中的方法或者增加接口等类似做法,进行计时,一秒内或者一段时间内,无法再次触发业务逻辑,显然这种办法简单粗暴,但是不可控,谁能知道业务逻辑是在多长的
2016-05-25 00:48:34
2068
原创 笔记---ImageLoader实现图片压缩,缓存
以下内容为博主阅读《Android开发艺术探索》所记代码以及知识点的梳理package com.example.utils;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileDescriptor;import java
2016-04-03 21:49:39
3382
原创 短信还原的注意点
状况:“短信还原”模块无法“正常”还原逻辑⑴短信备份模块:创建内容提供者,访问存储短信的数据库表,将sms表下的address,body,_id,date,type字段用smsInfo对象去接收,创建List集合去接收所有的smsInfo对象,即获得所有的短信⑵创建XmlSerializer和FileOutputStream输入流,将集合中的所有短信写入xml文件,如下图xml
2016-02-28 00:09:51
803
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人