
android
阴天吃鱼
这个作者很懒,什么都没留下…
展开
-
EventBus原理透析 ( 3.1.1 ) 带您更好的了解底层知识
Hey, do have a minute for a quick survey on how we are doing with EventBus?EventBus是一个开源库,https://github.com/greenrobot/EventBus主要通过发布者和订阅者来简化组件之间的通信,并解耦。EventBus的优点?1、简化组件之间的通信代码2、分离事件发送者和接收者(...原创 2019-11-26 13:50:57 · 625 阅读 · 0 评论 -
Android控件阴影颜色调整
CardView在设置阴影的效果上来讲,确实是蛮不错的。但是涉及到变更阴影颜色这个需求,就不是太好操作。然后就自己描边画了一个阴影效果,分享,支持任何颜色。 效果图: xml-selector<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schema...原创 2018-08-16 18:05:30 · 5169 阅读 · 2 评论 -
记录:SurfaceView在地图上播放显示透明的问题
记录一个之前遇到的问题:>在地图上播放视频,surfaceview会变透明且被地图所覆盖。无论你布局怎么写,它都是这样的。表示这个问题当时觉得是真的很奇葩。解决方式也写了很多。解决方式 :一、我单独写一个activity用来播放视频好了。二、给其加上 setZOrderOnTop(true); 将控件置于所有最顶层。但这个不太好控制合理性,具体还是要看项目。 我这边是因为外层还...原创 2018-08-17 10:33:31 · 830 阅读 · 0 评论 -
解决studio升级导致的:No such property: FOR_RUNTIME for class: org.gradle.api.attributes.Usage
>对于这个问题,我实在不想多说什么,记录一下解决方式。因为别的原因把studio升了个级,从3.0.1到3.1.4版本,然后运行编译原3.0版本项目的时候就出现这个问题了。No such property: FOR_RUNTIME for class: org.gradle.api.attributes.Usage导致问题产生的原因,是因为项目中有使用了,bintray-releas...原创 2018-09-26 09:35:51 · 1666 阅读 · 0 评论 -
Android锁屏无法继续定位问题
https://www.jianshu.com/p/956cbba64c53原创 2018-09-26 09:37:39 · 5700 阅读 · 0 评论 -
判断手机是否开启权限 若无跳转到手机设置界面
如题···就记录一下代码这个类是封装的判断是否有权限的Rx类,可以直接用 import android.annotation.TargetApi;import android.app.Activity;import android.app.FragmentManager;import android.os.Build;import android.support.annota...原创 2018-10-30 13:35:25 · 843 阅读 · 0 评论 -
快速排序算法
摘要设要排序的[数组]是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,当数组中有多个相同的值得时候,相对位置会在算法结束后产生变动。一趟快速排序的算法1)设置两个变量i、j,[排序]开始的时候:i=0,j=n-1;2)以第一个数组元素作为关键数...原创 2018-11-23 15:19:42 · 134 阅读 · 0 评论 -
线程池
在Android中,因为主线程的限制,执行一些耗时操作都必须在子线程中执行,使用子线程的时候多数都直接new一个,之后把执行的结果通过handler传输给主线程。new的线程,我们没办法进行管理,只能在执行结束后去做相应的操作,假设第一个创建的线程未执行完毕,继续new多个线程,线程之间会进行竞争,可能会因为占有过多的资源而导致oom,死机或者线程被强制干掉。毕竟大量的创建和销毁都会消耗系统资源...原创 2018-11-23 15:20:46 · 128 阅读 · 0 评论 -
LruCache
文章主要介绍了:1.LruCache的基本使用2.LruCache的源码分析3.基于LinkedHashMap的实现一、LruCache缓存的实例代码。假设存的是图片·long maxMemory = (int) Runtime.getRuntime().maxMemory(); int memorySize = (int) (maxMemory/8); ...原创 2018-11-23 15:21:47 · 308 阅读 · 0 评论 -
socket框架netty-socket android客户端方式,内含心跳重连等
之前自己写了socket建立的连接,但是涉及到一些需要完善的地方,表示自己有点懒。然后就在网上找了一个socket框架, 拿来直接用。阅读测试后,个人认为NettyClient 主要分为几个部分:1,异步端口连接 Bootstrap2,NettyClient的解码方式等 pipeline3,配套的HandlerAdapter : ChannelInboundHandlerAdapter等...原创 2018-08-15 16:22:56 · 4447 阅读 · 4 评论 -
Android操作外部数据库 从.sql转换开始·
https://www.jianshu.com/p/c0d7ee06df30看我简书地址吧, 点开就是·原创 2018-08-15 13:59:11 · 204 阅读 · 0 评论 -
Android树状图,内含checkbox
实在不知道说什么好了,这个东西以前也没做过,这两天公司有这方面的需求,就实现一下,然后把功能跟大家分享一下,以后有需要直接拿去用就好。效果图:分析一波:·1.层级父节点与子节点的关联·2.布局的复用·3.层级展开与关闭,显示与隐藏问题·4.checkbox的标记勾选功能的初步准备具体的代码mean,项目注释都有··一、数据的实体类```public class...原创 2018-08-15 13:45:04 · 1378 阅读 · 6 评论 -
动态设置icon图片。服务器下载解压缩包。
最近公司提了个需求,要求动态设置Icon。什么意思呢? 因为之前过年的时候,我们的app为了迎合过年的喜气,所有首页部分icon改成了象征春节的icon,因为每次更换需重新打包发版,导致更改周期长,不方便。 于是就提了这个需求,要求接收服务器发来的一个压缩包,压缩包里包含了指定的图片,下载后设置到icon上。根据这个需求分析呢, 首先我需要解压缩 文件。我用的AsyncTask.//书写的调用下载...原创 2018-03-01 16:01:19 · 589 阅读 · 1 评论 -
图片二次采样
在开发过程中,我们或多或少的都会接触到Bitmap这个东西,用的不好的话就会出现OOM问题,同时,也会有压缩的需求,可能有人会说,向Glide不是已经对图片压缩了么,但有时向图片上传到服务器功能,还得需要我们手动处理,去压缩图片后,再上传,否则,会造成上传很慢,尤其是用户网速不好的时候,还会浪费用户流量,甚至上传失败。这里是图片二次采样的代码public class BitmapUtils { ...转载 2018-04-10 11:37:31 · 527 阅读 · 0 评论 -
如何让你的app在后台被干掉后优雅的启动。
作为一名Android开发师,肯定在处理用户的体验上下一定的功夫。有这么一个场景,在用户用着你开发的app的时候,突然某个聊天工具来消息了,切换到聊天工具后长时间停留,并且可能做了一些你不知道的操作,比如看视频阿,刷刷消息圈什么的。一般这种情况下都很容易出现手机内存不足的情况,内存不足就会可能被干掉。这种时候用户切换到app准备继续操作时,如果开发师处理不好,就会引起崩溃的情况,肯定会出现返回的时...原创 2018-03-28 10:50:55 · 1735 阅读 · 0 评论 -
解决appcompat冲突问题 All com.android.support libraries must use the exact same version specification (mix
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 26.1.0, 25.0.0. Examples include com.android.support:anima...原创 2018-05-04 17:14:51 · 665 阅读 · 0 评论 -
ArrayList超详细源码解析
首先要清楚ArrayList基本特点* 查询某节点数据、更改某节点数据,快* 增加、删除可能会慢,存在扩容和移动元素。* 底层实现是Object数组* 默认大小为10ArrayList类的继承关系:![image.png](https://upload-images.jianshu.io/upload_image...原创 2018-05-15 11:33:04 · 304 阅读 · 0 评论 -
跨进程通信ContentProvider
* 需求:近期项目上刚有的需求,书写记录一下, 产品的意思是这样的:在宿主app里面可以启动公司别的模块的app.这样的话就不用涉及到移动代码的问题,于是我就集成了360Droid plugn插件,让新添加的app插件化。测试的时候问题就出现了,因为集成的别的app也是一个单独的app,所以在登录的时候就要输入账号密码让用户再登录一次。这样的话用户体验很差,在仔细思考了一下之后,选择了用Conte...原创 2018-05-22 16:57:41 · 459 阅读 · 0 评论 -
Socket实现通信,实时接收数据以及发送数据
公司要做一个视频采集socket通信的项目,第三方服务端已经提供好了服务,让我们对接,但是目前ui还没有,所以就暂时先自己写个小demo测试一下数据连接。先看下布局吧,很直观。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/ap...原创 2018-06-15 17:40:25 · 25045 阅读 · 0 评论 -
RecyclerViewItem滑动排序以及侧滑删除
GridLayoutManager效果图:gridview.gif录像软件不好使了,所以图片网上借用,但效果相符,本文提供具体的实现方式。LinearLayoutManager效果图:linear2.gif主要实现RecyclerView 条目根据不同的布局,支持随意拖动以及侧滑删除。话不多说直接上代码。滑动排序实现的方式,是通过继承ItemTouchHelper.Callback 重写其的方法,...原创 2018-02-27 21:16:11 · 972 阅读 · 0 评论