android开发
文章平均质量分 54
Code_legend
非淡泊无以明志,非宁静无以致远。
展开
-
OkHttp3深入了解之Interceptors
OKHttp官网上面介绍:拦截器是一种强大的机制,可以监视,重写和重试调用。这里我们主要对拦截器的网络请求头和数据请求的封装。网络请求头拦截器在Android应用中,我们通常需要获取用户手机的IMEI值和其他一些常用的参数,如果把他们封装到请求头里面的话会非常的方便。既然是自定义拦截器,我们首先肯定要继承OKHttp的拦截器,把这个自定义类设置成final类型的防止其他类继承。这里需要在...原创 2019-01-01 17:07:16 · 311 阅读 · 0 评论 -
java异常处理之抛出异常
抛出处理定义一个功能,进行除法运算例如(div(int x,int y))如果除数为0,进行处理。功能内部不想处理,或者处理不了。就抛出使用throw new Exception(“除数不能为0”); 进行抛出。抛出后需要在函数上进行声明,告知调用函数者,我有异常,你需要处理如果函数上不进行throws 声明,编译会报错。例如:未报告的异常 java.lang.Exception;必须对其进行捕捉原创 2016-08-13 22:20:25 · 6157 阅读 · 0 评论 -
java异常之运行时异常和非运行时异常
RuntimeExceptionRunntimeException的子类: ClassCastException 多态中,可以使用Instanceof 判断,进行规避 ArithmeticException 进行if判断,如果除数为0,进行retu原创 2016-08-13 22:25:03 · 3843 阅读 · 0 评论 -
Activity数据传递详解
唉,好久都没有写过博客了。真的是太懒了。最近在看《Android权威编程指南》,挺不错的一本书,感觉里面有很多开发规范,是很值得一看的一本书。感觉在工作中经常处理Activity之间的数据传递,通常我们都是只用(以前我是的)startActivity,但是看一些别人的代码中经常用到startActivityForResult。当时就是感觉很高大上的样子,然后一直不太清楚里面的具体到底是干什么的。但原创 2017-11-12 17:47:36 · 827 阅读 · 0 评论 -
更好用的DialogFragment
工作中总是要用到各式各样的对话框,通常我们首先会想到的就是Dialog。在以前的时候我通常都会自定义一个Dialog,然后在里面写一个接口,让需要创建这个Dialog的界面继承这个接口,实现点击事件的监听。其中大概代码是这样的:/** * @date 创建时间: 2017/11/22 22:25 * @author zh_legendd * @Description 自定义的dialog原创 2017-11-22 23:36:18 · 779 阅读 · 0 评论 -
打造一个通用的TitleView
在开发应用的过程中,大部分应用应该都是标题栏的。通常情况下,我们所使用的标题栏的高度什么其他设置之类的基本上都是相同。so,为了节省开发的效率,今天我们共同打造一个通用的标题栏。一般刚开发的时候,我们会有好几种情况去写标题栏,感觉刚入行的话,可能会在每个布局里面都去复制重复的布局,升级一点的话,应该会用include去把这个同样的布局,引入的主布局中。但是我感觉上面的方法都麻烦了。现在用一个自定义原创 2017-12-02 21:54:29 · 660 阅读 · 0 评论 -
爱不释手的ConstraintLayout布局
好久没有更新博客了,主要是最近太忙了。其实ConstraintLayout这个布局早都有了,一直没有使用过,所以看到有很多网站都有介绍。但是,感觉很多都是写的很乱或者写的很模糊让人看的好像使用起来很麻烦的样子。所以自己想写一篇博客介绍一下它的使用方法,其实真的好用又简单。使用之前你的Android studio 的版本必须是2.3以上的才可以使用这个布局控件,否则你发现你无论怎么在build.gr原创 2018-02-03 23:46:14 · 942 阅读 · 0 评论 -
高仿QQ时间选择器
###在软件开发中我们会需要各种选择选择器,比如设置个人年龄时需要使用时间选择器。设置地址需要用到地址选择,还有身高等等。####下面介绍一下使用方法:时间选择器的使用://这里设置的是选择之后可以回显数据,所以先创建一个SP设置基本数值 String string = getSharedPreferences("tag", MODE_PRIVATE).getString("date...原创 2018-11-09 18:16:13 · 248 阅读 · 0 评论 -
GreenDao数据库带你出坑
现在在Android中使用的数据库一般都是用的GreenDao,我们准备使用GreenDao的时候从网上看了很多文章,感觉很多技术点都不是我们关注的重点,经过实践以后觉得好多文章的内容都不太正确。我的这篇文章主要讲GreenDao的三个方面:1 GreenDao第三方包的引入2 GreenDao数据加密 数据库存放地址3 GreenDao数据库升级1 在Android Studio中导入...原创 2018-11-24 20:31:26 · 244 阅读 · 0 评论 -
ButterKnife使用详解
以前的话经常使用findViewById()来绑定布局中ID,这样写不仅麻烦而且还没有什么效率,今天推荐一款由JakeWharton大神写的框架Butterknife用来绑定ID。导入依赖既然是是一个第三方的开发库,让先让我们把导入项目中:Module的build.gradle文件中:apply plugin: 'com.jakewharton.butterknife'depende...原创 2018-12-30 21:36:50 · 606 阅读 · 0 评论 -
初探OkHttp3
在应用开发中肯定会用到网络请求,下面让我们一起了解OkHttp3这个网络请求框架吧。项目中引用Module的build.gradle文件中引入:dependencies { compile 'com.squareup.okhttp3:okhttp:3.12.1'}异步Get请求OkHttpClient 是连接对象,无论是什么请求,使用OKHttp都必须要创建这个对象。Re...原创 2019-01-01 13:25:53 · 313 阅读 · 0 评论 -
Android 6.0运行时获取权限详解
最近在工作过程中会遇到,明明已经在AndroidManifest.xml中配置了权限,但是就是没有作用,百度了之后才发现现在在应用系统大于等于6.0的手机上面,需要动态的获取权限。就是当你需要这个权限的时候,需要手机给用户一个提示选择是否同意开启这个权限。看到网上有很多关于这方面的文章,但是大部分都是很随意的copy别人的,看起来好像很麻烦似的,其实动态获取权限就那几行代码就可以搞定。接下来就举原创 2016-12-04 14:06:12 · 6999 阅读 · 2 评论 -
详解Android中Shape的用法
工作中总是会用到shape去画一些背景,每次都要去百度,但是很多都写的很模糊或者属性不是很全,所以今天自己总结了一下,给大家分享一下,自己以后也可以看。ShapeDrawable是一种很常见的Drawable,可以理解为通过颜色来构造的图形,它既可以是纯色的图形,也可以是具有渐变效果的图形,ShapeDrawabled语法稍显复杂,如下所示:<shape xmlns:android="htt原创 2017-07-09 11:29:44 · 628 阅读 · 0 评论 -
Android中LeakCanary检测内存泄漏
最近要对产品进行内存泄漏的检查,最后选择了使用Square公司开源的一个检测内存泄漏的函数库LeakCanary,在github上面搜索了一下竟然有1.6w个star,并且Android大神JakeWharton也是这个开源库的贡献者。那么就赶快拿来用吧。先说一下我遇到的坑,我当时是直接google的,然后就直接搜索到稀土掘金的一篇关于LeakCanary的介绍,我就按照他们的文章一步步的操作,到原创 2017-09-12 08:23:04 · 935 阅读 · 0 评论 -
Android中EditText禁止输入表情
最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在EditText中屏蔽表情吧。网上有很多这样的列子但是一不小心就会掉进坑里面,比如继承EditText,重写addTextChangedListener()方法。可能当时你测试的时候没有什么问题,但是项目上线后就会有很多问题,错误率很高,但是查看友盟后台的时候原创 2017-08-27 22:31:34 · 6233 阅读 · 2 评论 -
Android开发从相册中选取照片
最近项目在做一个功能:就是需要从用户选择头像跳转到相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽。下面说两种方法分别是直接选择相册返回,另外一种为选择相册之后进行裁剪。先上效果图(1)直接选择相册后返回 第一步就是主要跳转的相册 //在这里跳转到手机系统相册里面 Intent i原创 2017-08-27 14:45:51 · 16258 阅读 · 4 评论 -
高仿QQ中的时间选择器
最近在做一个功能时间选择器和地区选择器在网上找了好久找到了一个轮子,经过改造之后就可以直接那来用和QQ中的时间选择器可以说是一模一样,先上一下效果图里面的代码我就不分析分析了因为太好用了,我就直接说怎么用吧 第一种方法:直接将arr文件放到lib目录里面然后再在build.gradle中引用这个文件当然你也可以把这个当作lib引进行了。地址连接时间选择器原创 2017-07-31 23:17:57 · 838 阅读 · 3 评论 -
解决ListView复用的乱码问题
废话不多说,先说问题:就是我们在使用ListView的时候一般都ViewHolder进行复用。但是当我们对于item里面的某个控件进行判断来是否显示或者隐藏的时候,就会出现乱码的问题。具体的原理就是不说了没什么用。解决方法就是比如我们channalInfo.getType()==0的时候设置iv_ch_yinys和iv_ch_suo设置为隐藏。就必须在channalInfo.getType(原创 2017-05-16 08:43:24 · 1598 阅读 · 0 评论 -
详解Android中图片轮播
现在的应用中有很多这种图片轮播控件,今天就来介绍一下怎么实现的。其实挺简单,只用把我的代码copy过去就好。好吧,下面就来具体实现 一下喽。 首先分析图片有图片和文字,哇(图片上面没文字)文字就算是我赠送的。那就创建一个实体类public class Ad { private int iconResId; private String intro; public Ad(in原创 2017-01-25 14:38:30 · 1015 阅读 · 1 评论 -
详解Android中调试桥--adb
Android调试桥–adbadb是什么?adb有什么用?adb工具如何用?adb是用来管理模拟器和真机的通用调试工具,该工具功能强大,直接打开cmd即可使用adb命令,adb的全称为Android Debug Bridge,是起到调试桥的作用,通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具,adb的工作方式比较特殊,采用**Socket T原创 2016-08-21 12:52:29 · 3344 阅读 · 0 评论 -
详解Android中获取SD卡和内存的空间信息
在Android中如何获取SDCard和手机内存的总空间和可用空间等信息。创建一个新的Android工程,工程名字为《获取存储空间大小》,包名为:com.connect.storageSize 这里使用默认生成的布局文件和Activity类。 修改布局文件activity_main.xml 布局文件第二部分: 编写业务代码 业务代码第一部分: 业务代码第二部分: 在上述方原创 2016-08-21 17:20:19 · 1960 阅读 · 0 评论