自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 compileSdkVersion and minSdkVersion and targetSdkVersion 区别

compileSdkVersion、minSdkVersion、targetSdkVersion 区别一直以来没有真正弄懂这三者的区别,查阅很多资料后做一个总结。compileSdkVersioncompileSdkVersion 是编译 app 时的 API 版本。意思时你可以使用你指定的版本的 API 特性,包含此版本一下的所有 API 。如果你使用 API 16版本的新特性,但是设置的...

2019-06-01 22:37:40 327 1

原创 App实战:移动端Mock Api的几种方式

App实战:移动端Mock Api的几种方式相信做Android的朋友在开发中一定会碰到这样的痛苦:页面写完了,后台接口还没开发完成。这个时候就需要我们自己来mock api了。下面我介绍几种我用到的方式:一·玩Android提供的mock api很多人应该知道鸿洋做了一个网站叫玩Android,但是可能有的朋友不知道鸿洋还提供了一个很实用的功能那就是mock api。以前在首页有介绍,貌似...

2018-12-25 22:07:16 2264 1

原创 App实战:多类型列表写法(RecyclerView)

多类型列表写法(RecyclerView)还是先上个图主要实现功能:一个列表,多种类型展示上拉加载,有三种底部布局:加载中、加载失败、全部加载下拉刷新,会有一个提示刷新完成动画多类型主要是Adapter中的写法,继承RecyclerView.Adapter复写四个方法://创建viewholder,主要是做一些findview的操作onCreate...

2018-06-28 21:07:14 571

原创 Android Studio一些使用技巧

Android Studio一些使用技巧一、File Header,类注释把下面代码复制上去就行。#set ($USER = "肖坤")/** * <pre> * 作者 :${USER} * 时间 :${YEAR}/${MONTH}/${DAY} * 描述 : * 版本 :1.0 * </pre&...

2018-06-19 20:09:51 389

原创 App实战:权限管理再封装之一键调用

App实战:权限管理再封装之一键调用一直以来我对于权限申请这方面我都是在用着谷歌官方开源的EasyPermissions这个库,其实它的内部算是比较简单,内部是把一些Android SDK自带的权限方法封装了起来。如果只是想看关于这个库的使用,可以看一下我之前写的一篇博客App实战:动态申请权限以及为所欲为之终极扩展。这里首先我对这个库的流程做一个总结,如下图所示:虽然说逻辑上比较简单...

2018-06-17 20:01:01 1604

原创 App实战:夜间模式实现方法一

App实战:夜间模式实现方法一大致上有三种实现方法:通过更换主题,不需要重新创建Activity。/** * Set the base theme for this context. Note that this should be called * before any views are instantiated in the Context (for examp...

2018-06-14 18:42:16 2844

原创 App架构设计实战二:基于MVP模式的相似UI界面复用问题解决方案

碰到的问题不知道大家在平时有没有碰到这种情况:在项目中有很多UI界面相似的页面。比如: 图1 图2 在项目中一开始看到类似这样的页面我是很高兴的,以为可以复用了。氮素,后来稍微深入发现有几个问题:1.项目中每个页面的接口肯定是不一样的;2.每个接口返回的数据也是不一致的,如下: 图1 图2 因为这种界面...

2018-05-03 18:00:00 662

原创 App实战:动态申请权限以及为所欲为之终极扩展

App实战:权限管理今天下午7酱又要上场了,开森。b话不多说,先来一套泰拳警告。上一篇博客中,其实遗留了一个比较大的问题。那就是我们保存图片到本地,是需要文件存储权限的,而我是直接在manifests文件中注册。这对于6.0之前系统的手机是没有问题,但是在6.0之后手机就不行了。因为Google认为写入文件的权限属于隐私权限,需要向用户申请,而不是开发者决定。还是那个妹子!...

2018-04-28 16:57:28 806

原创 App网络请求实战四:rxjava操作符flatMap使用以及rxjava源码解析

App网络请求实战四:rxjava操作符flatMap使用以及rxjava源码解析今晚摔杯为号!(李家)rxjava有很多强大的操作符,前面几篇我们其实已经介绍了map转换操作符的实战用法,今天来看看一个更牛逼的flatMap操作符。小老板,多捞哦。上图flatMap实战 其实我个人认为rxjava最牛逼的地方在于,它很轻易的解决了Android中比较棘手的一个问题...

2018-04-27 11:53:01 1006

原创 App架构设计实战一:初步引入MVP

App架构设计实战一:初步引入MVP顺风笑嘻嘻,逆风mmp!接着上一篇,上一篇其实隐含着一个比较大的问题,那就是MainActivity中,逻辑代码太多带来的直接问题就是看起来特别臃肿,如果后面继续添加功能,修改起来也麻烦,也就是扩展性也比较差。Activity大兄弟很气啊,mmp凭啥什么事情都交给我干,所以需要引入其他兄弟来分担下Activity的任务咯。Android架构进化史...

2018-04-23 14:53:15 671

原创 App网络请求实战三:下载文件以及断点续载

App网络请求实战三:下载文件以及断点续载瓜皮已上线,嘿嘿。想反杀,不存在的!小老板,多捞哦。还是原来的配方,无图言diao本篇记录的是如何将下载功能集成到网络框架中。解题步骤1.大的方面来了解okhttp、retrofit、rxjava三者之间的关系a.首先okhttp是一个Http底层请求库,square公司开发已被谷歌Android采用。和okhttp...

2018-04-23 08:55:20 937

原创 App网络请求实战二:继续封装以及Interceptor拦截器的使用场景分析

App网络请求实战二:继续封装以及Interceptor拦截器的使用场景分析​ 我一猛龙撞击,加一手回笼望月,完美,叫你皮!老规矩,先上图OkHttp的配置如果你还没有看上一篇,你可以先看一看上一篇 App网络请求实战一:Rxjava+Retrofit的初步封装上一篇中遗留了一个问题就是:Retrofit retrofit = new Retrofit.Bu...

2018-04-20 17:56:33 1245

原创 App网络请求实战一:Rxjava+Retrofit的初步封装

App网络请求Rxjava+Retrofit的初步封装​ 现在的App在网络请求方面都是用Rxjava和Retrofit这一套东西。来,下面我们按照下面的思路来想。为什么要封装–>决定要封装了,该从哪方面入手,或者说应该怎么封装。注意:本文默认你会使用Rxjava和Retrofit,重在探讨封装思路,皮得我们就不谈了。老规矩上图为什么要封装想一想一个App里面...

2018-04-19 18:11:02 756 1

原创 动手系列一:动手写一个状态布局

动手写一个状态布局先上图解题步骤​ 现在大多数App在首次进入的界面都不会弄dialog弹框加载,反而更多的会是做一个加载页面(当然也看业务而定)。然后后面再进行刷新的时候,有的会使用Android自带的刷新控件,有的会用dialog弹窗加载。本篇写的就是关于首次进入的状态布局,其中包括有空布局、错误布局、加载布局、无网络布局以及内容布局。试想一下,如果我们每个xml页面都...

2018-04-18 19:53:25 269

原创 优化系列一:FragmentStatePagerAdapter的notifyDataSetChanged优化方案

FragmentStatePagerAdapter的notifyDataSetChanged优化方案首先上图:接下来我们先来分析下布局很容易可以看出是radiogroup+指示器+viewpager+fragment来展示。一开始我按照正常的方式来做,会发现有几个问题。第一:这里有十几个fragment,一进来就会执行十几次网络请求。虽说网络请求都是异步执行,但是这个一是浪费流...

2018-04-18 17:54:29 1509 2

原创 ViewPagerIndicator源码解读

ViewPagerIndicator源码解读1.TabMainActivity最先执行,而且在Adapter里new了FirstLayerFragment因为FirstLayerFragment继承LazyFragment,LazyFragment继承BaseFragment,BaseFragment继承Fragment,现在继续看执行哪里2.主要是区分setUserVisibleHint和onCr

2017-02-21 09:36:04 435

原创 常见设计模式

Android开发中常见设计模式1.工厂方法模式(5)​ 属于类创建型模式。又叫工厂方法模式,又被成为多态工厂模式,因为它完全符合开闭原则。工厂父类负责定义创建产品对象的公共接口,工厂子类负责不同产品的具体实现,增强了代码的扩展性。​ 开闭原则:类对于扩展是开放的,但是对于修改是封闭的。​ 包含有四个角色:Product抽象产品,ConcreteProduct体产品,Factory抽象工

2017-02-08 20:24:22 374

原创 没有第三方库怎么办系列1

viewpager指示器、图片加载框架Picasso、网络框架okhttp。有时候我不禁在想:没有这些第三方,我该怎么办,我还会不会开发!所以本系列博客的意义在于拨开第三方库的层层迷雾,知其然,进而知其所以然(先装个那啥。。)。其实我也是个菜鸟,只是记录下自己的想法而已。图片框架Picasso

2016-11-18 18:50:46 510

原创 自定义SwipeBackLayout控件实现右滑退出activity功能

SwipeBackLayout其实github上已经有这个开源库了,我是个菜鸟,我喜欢用开源库,同时也非常好奇它的实现原理。很多大神写的代码注释都特别少,可能是他们觉得很简单就懒得写了,这点对新手来讲就有点坑爹了;所以我只是借助大神的代码向大家讲解下这个的实现原理。介绍原理之前我先说下原创的问题,老实讲我博客上讲的东西以前绝对有人写过,很多别人写的很好,而我只是站在他们的肩膀上帮助下新手。我真的不喜

2016-09-12 20:44:27 839

原创 ScrollView嵌套ViewPager问题解决方案

问题分类最近在做公司项目,有一种需求就是scrollView嵌套多个viewpager,而且还有的viewpager里是fragment,fragment里面是gridview。这里面有比较多的问题,大致将问题分为两类,如下所示: 1.两者嵌套的滑动冲突问题。这种问题网上有很多现成的方案,这里我就不多说了。 2.viewpager高度不显示问题,这里我主要讲的就是这个。ViewPager高度不显

2016-08-10 21:45:12 12559 5

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除