- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 Android 比ArrayMap更高效的SparseArray
上篇博客介绍了ArrayMap,由于它是基于2个数组,而不像传统的hashMap每添加一个元素都要new一个对象,所以arraymap比较高效,这这次说的SparseMap比arrayMap还高效一些,为什么呢?1 内部也是基于2个数组(kv)2 不用每次new对象3 avoids auto-boxing keys 避免装箱4 但是key只能是int类型那什么时候用呢?当hashMap或arr
2016-12-29 10:45:01 646
原创 android中你所不知道的高效的ArrayMap
昨天闲的蛋疼啊,就看看了集合框架的源码,忽然看到了这么一个玩意儿,arraymap,好奇就百度了一下,大概也了解了一下,今天就一言不合写博客了,知识在于积累啊。 1 看看hashmap是怎么回事//无参数的构造,第一个表示默认的容器大小 public HashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR);
2016-12-28 16:35:17 1572
原创 Android设计模式之工厂方法(1)
这些天趁着有时间在看android的设计模式,感受颇深啊,我等下的代码和大神没啥却别,大神之所以牛逼是因为能在合适的场景下使用合适的设计模式从而设计出完美的代码结构,路漫漫其修远兮,吾将上下而求索,来先看图: 错了错了,不是这张图(上错了): 工厂方法模式的核心就在于2个接口(或抽象类),请看上图,一个是Product抽象类,他就表示我们需要的实例的抽象,另一个就是FathorFacto
2016-12-26 11:58:18 352
原创 Android 源码分析之okhttp3(builder二)
上篇博客简单地介绍了一下builder设计模式,其实也很简单,相信聪明的你能很快理解他的精髓,这篇就来说说okhttp3的设计模式,其实也是builder模式,只不过和alertdialog有点小小的区别,这个区别就是在成员变量位置,ok3没有对成员变量进行封装,而alertdialog将成员变量封装到了一个含有内部类的类中了; 下面先看下ok3的代码: OkHtt
2016-12-25 15:51:08 529
原创 android 设计模式之builder(一)
Android中的builder模式非常的常见,应用的也很广泛,不okhttp,alertdialog等等都有使用这种模式,这种模式的好处就是讲操作的细节隐藏了起来,只关注结果;今天我就简单地分析下alertdialog的源码,但是呢,先来写一个关于builder的简单demo,这样理解alertdialog的源码了;package com.example.dialog;import android
2016-12-25 10:32:45 351
原创 Android as你所不知道的debug能力
很多人虽然整天都在用as,但是一旦代码出现问题就无从下手,这时候我就想起来那本《论debug的重要性》的书了,之前接收ali大神的代码我真是头疼,但是大神教我如何debug之后感觉整个世界的不一样了;就用下面的代码来做演示:public class MainActivity extends AppCompatActivity { int a; @Override protect
2016-12-22 23:32:22 2160
原创 Android 5.0特新中ViewAnimationUtils的使用
7.0来了,5.0的特性掌握了吗?下来个图 这样的动画就是5.0特性里面ViewAnimationUtils提供给我们的;先看方法说明 这个方法能做2件事,1是返回一个动画对象,2是讲图片裁剪为一个圆;下面是参数说明: 第一个参数:代表的是你要操作的view,第二个是圆的x方向的中点,第三个是圆的y方向的中点,第四个是这个圆开始时候的半径,第五个是结束时候的半径;下面就是代码了:pub
2016-12-21 15:31:35 4777 1
原创 Android Studio如何解决代码冲突问题
很多人都有这样一个问题, 在pull代码的时候往往会产生git上的代码和本地发送冲突,那么我就用一张图解决这个问题; 我们不用去关系绿色的部分, 只要关系红色的冲突部分就可了;
2016-12-20 11:53:05 1803
原创 Android 去掉listview自带的蓝色背景
<ListView android:id="@+id/lv" android:layout_width="match_parent" android:divider="@null"//去掉分割线 //下面这2个是去掉蓝色背景 android:cacheColorHint="@android:color/transpare
2016-12-19 21:04:58 415
原创 Android rxjava内存泄漏问题
虽然rxjava很好用, 如果产生过多的订阅就会造成内存泄漏问题, 如何解决呢?@Override protected void onDestroy() { super.onDestroy(); //主动解除订阅关系 if (mSubscription != null && !mSubscription.isUnsubscribed()) {
2016-12-16 10:30:33 1678
原创 Android 最简单的rxjava遍历集合写法
废话不多说,直接上代码List<User> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { User user = new User(); user.id = i + ""; list.add(user); } Obse
2016-12-15 17:02:36 6365
原创 Android Rxjava遍历,过滤集合
在android中我们操作最多的就是遍历集合,并将需要的元素过滤出来,下面就让我们一起通过rxjava来完成它吧;以后麻麻再也不用担心我遍历集合了,一次搞定遍历和过滤, 当然作者只是演示rxjava操作符中的一小部分;1 添加依赖 compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1'2 把代码撸成
2016-12-15 16:50:08 13784 1
原创 Android okhttputils显示下载进度
//download the new app private void downLoadNewApp(NewVersion.XianzaishiRfBean version) { if (StringUtils.isEmpty(version.getUrl())) { ToastUtils.showToast("新版本的APP url为空");
2016-12-14 15:52:16 3211 2
原创 Android Listview的item的全选反选问题
很多同学都有遇到这样的问题, 想通过某个按钮进行多个条目的全选和反选问题, 出现最多的问题就是childview复用,很让人头疼, 而结局这个问题的关键就在于操作原始数据;1 实体类public class Bean { public boolean isChecked; public String he = "哈哈";}2 全选反选按钮的点击事件 //生成数据
2016-12-14 14:43:02 321
原创 Android 6.0取消httpclient后如何使用volley
您必须先在 build.gradle 文件中声明以下编译时依赖项:android { useLibrary ‘org.apache.http.legacy’ }
2016-12-08 20:44:51 1109
空空如也
Android 购物车右上角的红点
2017-06-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人