9 small-dream

尚未进行身份认证

我要认证

专注Android开发

等级
TA的排名 5w+

获取最新最完整的省市县数据

下载省市县JSON数据Github源码获取数据的来源什么地方可以获取最权威的省市县数据?当然是官网民政部门门户网站在网站的最下面,你可以看到最新的行政区划分代码打开连接,数据是这样展示的:显然,这样的数据我们是无法使用的先复制网页内容到txt文件,然后删除无用的文字,最后得到这样的: 代码生成JSON数据我们最终需要的是一份JSON数据,这样才...

2018-05-10 11:41:52

Gradle 插件更新到3.0.1之后,release包安装不上

原来以为是instant run打开了,但是关了之后仍然不行,直接Android Studio 上点击安装是可以的最后发现是buildToolsVersion版本原因原来是26.0.2改成 27.0.2就行了。。坑

2018-01-09 11:08:28

Retrofit源码解析

Retrofit源码结构Retrofit: 通过注解,把一个Java接口转化成一个http 请求,底层网络请求基于okhttp从Retrofit源码结构可以看出,Retrofit 源码分成两部分 一部分是包retrofit2.http里面的,在Java接口方法中使用,用来控制http行为的注解。一部分是retrofit2里面的,负责把REST API转化成Java接口。Retrofit和okht

2016-07-16 08:25:07

Android键盘弹出的研究

键盘弹出基本上开发中都会用到,之前用的比较简单,最多也就是Activity windowSoftInputMode标签中设置属性,没有深入研究。直到最近在解决键盘弹出导致界面闪烁的问题以及在做直播功能需要在键盘弹出时控制某些View的测量遇到一些问题,决定总结一下键盘弹出相关的知识点。键盘行为的控制一般情况,键盘的显示和隐藏都交由系统控制,比如,当EditText获取焦点时,键盘会弹出来,当用户按返

2016-07-09 10:07:22

Fragment重叠问题引发的思考

参考: http://stackoverflow.com/questions/16189088/overlapping-hidden-fragments-after-application-gets-killed-and-restored http://stackoverflow.com/questions/18274732/android-fragments-overlapping-

2016-06-18 20:35:45

Android MVP 使用教程

写一个Hello World程序总是很简单的,它的代码总是很简单、整齐的,SDK完全可以满足我们的需求。但是,如果你在开发过复杂的Android app,你应该清楚,生产环境的代码往往不是这样。你需要花费好几个小时去弄清楚在没有WiFi的情况下,为什么当手机屏幕旋转时,你的购物车不会更新。 你需要不断的在已经很复杂的Activity 的onCreate 方法里面去添加if 语句去解决app在某个设

2016-03-15 21:29:06

Android MVP 介绍

原文地址: http://antonioleiva.com/mvp-android/#MVP (Model View Presenter) 模式是广为人知的MVC(Model View Controller)模式的一种衍生品,在最近一段时间,它逐渐受到Android开发者的重视,越来越多的人开始谈论它。但是,网络上却缺少可靠和严谨的文章来介绍MVP这种新的模式,这就是我为什么要用这个博客来鼓励

2016-03-12 22:17:00

Retrofit 基本使用教程

Retrofit 查询参数查询参数是一种很常见的客户端往服务端传递数据的方式,比如我们需要传一个idg=给服务端,那么URL可能是这样的:https://api.example.com/tasks?id=123Retrofit 定义实现查询参数:public interface TaskService { @GET("/tasks") Call<Task> getTask(@Qu

2016-02-28 12:01:58

Retrofit简单介绍和使用

原文地址: https://futurestud.io/blog/retrofit-getting-started-and-android-client#Retrofit是什么对于Retrofit ,官方的描述是:“A type-safe REST client for Android and Java.”它可以通过注解来描述Http请求,URL参数,查询参数,同时,它还支持多个请求体和文件上

2016-02-22 22:09:53

代码大全第15章,使用条件语句

一、if-else语句 1、把正常情况的处理放在if后面而不要放在else后面 2、不写写空的if-else语句 3、测试else代码的正确性 4、检查if-else是不是弄反了二、if-else if语句 1、把常见的放在最前面 2、利用布尔函数调用简化复杂的检测 3、确保所有情况都已经考虑到 4、如果可以使用case语句,尽量使用case语句三、case语句 1、为case语句

2016-02-20 16:08:43

Effective Java 78 条规则

创建和销毁对象一、考虑用静态工厂方法代替构造器 二、遇到多个构造参数时要考虑用构建器(Builder模式) 三、用私有构造器或者枚举类型强化Singleton属性 四、通过私有构造器强化不可实例化的能力 五、避免创建不必要的对象 六、消除过期的对象引用 七、避免使用终结方法对象通用方法八、覆盖equals时请遵守通用约定 九、覆盖equals时总要覆盖hashCode 十、始终要覆盖

2016-02-18 22:10:39

图片加载框架Glide使用教程

Glide,和Picasso很相似,可以从各种图片来源加载和显示图片,并且很好的支持缓存。同时,它在对图片操作时,只占用很少的内存。Glide已经被谷歌官方的应用程序所使用(如2015年的 Google I / O的应用程序),同时,它和Picasso一样受到Android应用开发者的欢迎。在项目中引入GlideGradle:compile 'com.github.bumptech.glide:gl

2016-01-02 20:42:01

图片加载框架Fresco使用总结

一、SimpleDraweeView 属性介绍 <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/my_image_view" android:layout_width="match_parent" android:layout_height="300dp" fres

2015-12-27 11:17:05

Dialog使用总结

1、构造函数Dialog默认使用所在Activity主题: public Dialog(Context context) { this(context, 0, true); }使用指定的主题: public Dialog(Context context, int theme) { this(context, theme, true); }2、常用用法m

2015-11-30 22:15:52

PopupWindow使用总结

一、构造函数1、包含Context的构造函数 public PopupWindow (Context context ) { this( context, null); } PopupWindow的一些属性会和应用设置的主题相关,自带背景(如果不设置背景,可能不能全屏)2、不包含Context的构造函数 public PopupWindow () {

2015-11-29 10:57:40

Ubuntu服务器相关命令

1、修改MySQL密码mysql -u root -p 先用旧密码登录 mysql> use mysql; mysql> update user set Password = PASSWORD(‘新密码’) where User =’root’;

2015-11-14 10:08:38

Android App 开源项目使用统计

Android的开源项目越来越来多,很多时候,我们选择开源项目时不知道选择哪个好,因此,我决定反编译当前一些用户量大,比较知名的App,看看他们是用了什么开源项目,一方面,在我们选择开源项目时可以参考,另一方面,也可以发现一些比较流行的开源项目,可以学习学习,对找工作用帮助。美团 :JakeWharton/ViewPagerIndicator JakeWharton/NineOldAndroid

2015-09-04 13:44:40

Android动画学习--帧动画,补间动画,属性动画的基本用法

一、Drawable Animation(帧动画)帧动画主要是通过加载一系列的Drawable的资源来实现动画效果,每张图片设置一段展示的时间,相当于一帧,很多张图片连接起来,就是一段帧动画。一般帧动画通过在Drawable文件夹新建一个XML来实现,XML文件包含一个作为根节点,下面包含一系列子元素的节点,每个包含图片,和显示时间:<?xml version="1.0" encoding="utf

2015-08-19 22:59:22

深入学习Android异步任务-AsyncTask

一、AsyncTask的介绍与使用AsyncTask可以让程序进行异步工作,它在一个线程中执行某些操作,之后将结果返回给UI线程。使用AsyncTask类时,需要继承AsyncTask类并实现doInBackground()回调方法。要更新UI界面,需要实现onPostExecute(),并从doInBackground()方法中获得结果,最后,可以在UI线程中调用execute()方法来执行操作,

2015-08-19 22:40:18

Android 的消息机制

一、Handler机制的总结1、HandlerHandler对象是Message的接收者和处理者。用户使用Handler对象把Message添加到消息队列中;同时通过Handler的回调方法handleMessage()来对消息队列中的Message进行处理。Handler对象在构造时和某个Looper对象关联在一起(Handler构造函数中可以传入Looper实例,如果不传,Handler关联的L

2015-08-09 12:32:36

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!