- 博客(48)
- 收藏
- 关注
原创 从google todo-mvp示例再次学习MVP
#从google todo-mvp示例再次学习MVP> 已经使用了一段时间的MVP模式,今天再以google官方的安卓架构示例todo-mvp为例,再次学习MVP模式。一、MVP简介Model: 数据层,负责与网络层和数据库层的逻辑交互。View: UI层,显示数据, 并向Presenter报告用户行为。Presenter: 从Model拿数据,应用到UI层,管理UI的状态,响应用户的行为。
2018-03-01 11:37:50 394
原创 彻底理解 Android 中的阴影
彻底理解 Android 中的阴影如果我们想创造更好的 Android App,我相信我们需要遵循 Material Design 的设计规范。一般而言,Material Design 是一个包含光线,材质和投影的三维环境。如果我们想要在 App 的开发过程中,跟随 Material Design 的设计原则,那么理解 光 与 阴影 就显得尤为重要了。我将尝试解释本文中的以下主题。A...
2018-02-27 09:53:12 795 1
原创 让预览 RecyclerView 效果更方便的一个小技巧
让预览 RecyclerView 效果更方便的一个小技巧简评:使用 “@tools:sample/*” 资源来让 RecyclerView(或 ListView)的效果预览更方便。 相信在大多数的 Android 开发中都会和 RecyclerView(或者 ListView)打交道。常有的一个问题就是在编码时,怎么方便的看到和调整每个 item 的显示效果。 当然啦,有经验一些
2018-02-26 10:11:36 918
原创 Android Tangram模型:手把手带你学习淘宝、天猫都在用的UI框架模型
Android Tangram模型:手把手带你学习淘宝、天猫都在用的UI框架模型前言Tangram 是阿里出品、用于快速实现组合布局的框架模型,在手机天猫 Android & iOS版 内广泛使用 电商图今天我将对Tangram 模型 进行全面介绍,希望你们会喜欢。目录目录1. 为什么要使用 Tangram 模型在讲解 Tangram模型...
2018-02-24 15:50:23 1831
原创 Android Virtualview:淘宝、天猫 又一个动态化、高性能的UI框架力作
Android Virtualview:淘宝、天猫 又一个动态化、高性能的UI框架力作前言淘宝、天猫一直致力于解决 页面动态化的问题在2017年的4月发布了v1.0解决方案:Tangram模型 及其对应的 Android库 vlayout,该解决方案在手机淘宝、天猫 Android版 内广泛使用 若还不了解Tangram模型 和 vlayout,具体请看文章 Android Ta
2018-02-24 09:52:50 1198
原创 2018 年初值得关注的 15 个新 Android 库和项目
2018 年初值得关注的 25 个新 Android 库和项目这是我最新收集的 25 个 Android 库和项目列表,你也许会发现它们有用,有趣,并值得查看一下。所有的都在最近 3 个月发布的,排序不分先后。开始查阅吧!1. transitionerTransitioner 是一个为两个拥有嵌入子视图的视图之间提供简便、动态且可调整的动画效果的库。它纯 100% 使...
2018-02-23 15:39:26 2439 1
原创 Android插件化完美实现代码资源加载及原理讲解 附可运行demo
Android插件化完美实现代码资源加载及原理讲解 附可运行demo 原创 2017年03月01日 18:02:15 <ul class="ar...
2018-02-08 13:49:39 334
转载 Android 快速实现自定义控件
自定义控件之绘图篇(一):概述及基本几何图形绘制 原创 2014年08月27日 19:39:20 <ul class="article_tags...
2018-02-08 13:48:55 282
原创 Android 快速实现7.0的Shortcuts效果
Android 7.1 App Shortcuts使用Android 7.1已经发了预览版, 这里是API Overview: API overview.其中App Shortcuts是新提供的一种快捷访问方式, 形式为长按应用图标出现的长条.图来自: Exploring Android Nougat 7.1 App Shortcuts点击快捷方式可以访问应用功能, 并且这种快
2018-02-07 16:51:29 1281
原创 Android Studio 好用的插件整理-求收藏
现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+Ins
2018-01-31 17:33:08 434
原创 Android 快速解决Listview与ScrollView嵌套的问题,与分析解决问题原理
1、手动设置ListView高度经过测试发现,在xml中直接指定ListView的高度,是可以解决这个问题的,但是ListView中的数据是可变的,实际高度还需要实际测量。于是手动代码设置ListView高度的方法就诞生了。/*** 动态设置ListView的高度* @param listView*/public static void setListViewHeightBa
2018-01-27 22:40:35 650
原创 Android 快速给ListView去掉上下半月形效果
android:fadingEdge="none"android:overScrollMode="never"添加这2行即可搞定
2018-01-23 13:56:03 613
原创 Android 快速实现 ViewStub的使用
一、概述ViewStub 是用来做 View延迟加载 的 . 源码Demo下载链接–>点我~! 码云使用方法点我~!二、实现public class MainActivity extends AppCompatActivity { private ViewStub mVsContent; // 正文view Handler handler = new Handler()
2018-01-21 20:20:59 424
原创 Android 快速用RxJava2做倒计时
绕过概述原理,直接上代码:public class RxCountDown { public static Observable countdown(int time) { if (time 0) time = 0; final int countTime = time; return Observable.interval(0, 1
2018-01-21 19:45:46 2040 1
原创 Android 快速使用View的setSelected用法
一、概述作用: setSelected() 方法是 Android 系统层级 View 类的方法,可以说所有的显示控件,都有这个方法! 它的作用,是用来切换背景显示的 运用: 日常开发中,经常会遇到一个控件 点击 和 未点击 是2个样式的情况 这种需求的实现方法也N多种,调用 控件 的 setSelected() 方法,是其中一种比较方便的实现方法下面给大家介绍如何实现,非常简单
2018-01-16 17:34:04 20796 1
原创 Android 趣味发现-HorizontalScrollView的秘密
一、setMinimumWidth()给 HorizontalScrollView 设置了 setMinimumWidth()之后,它的子view的weight属性就会生效! 否则将无效!MainActivity.java mHsvTest = (HorizontalScrollView) findViewById(R.id.hsv_test); LinearLayout mRoo
2018-01-16 15:47:24 452
原创 Android 快速使用 string.xml 中的array标签
一、实现快速贴上两段代码,给大家介绍res/values/string.xml <array name="array_test_string"> <item>Monday</item> <item>Tuesday</item> <item>Wednesday</item> <item>Thursday</item>
2018-01-16 11:56:57 5251
原创 Android 快速掌握Fragment生命周期与使用技巧
一、概述非常简单的一副图,记住就可以了,与Activity差不多Activity生命周期==>点击这里二、场景切换过程下面简单介绍下Fragment在不同场景的情况下,生命周期是如何进行切换的1、打开/切换到该Fragment onAttach() onCreate() onCreateView() onActivityCreated() onStart() onResume
2018-01-15 17:41:50 312
原创 Java 基础 快速掌握2分法查找
一、概述2分法查找是一种查找算法,它的优点是: 1、比较的次数少 2、查找的速度快 3、平均性能好 有个缺点是: 1、查找的列表必须要是 有序 的二、思路1、在给出的有序排列的数组中,把 目标值 和 数组中间值 进行比较 2、如果相等,则返回中间值下标 3、如果目标值 小于 中间值,就从数组的 前半段 再次执行二分法查找 4、如果目标值 大于 中间值,从数组的 后半
2018-01-15 16:35:22 566
原创 Android 快速掌握Activity生命周期
一、描述上图是Activity所有的生命周期二、场景下面简单列举下 不同场景Acitvity的生命周期是如何切换 的1、启动Activity onCreate() onStart() onResume()2、跳转到其他Activity,或者按Home键 onSaveInstanceState() onPause() onStop()3、从后台回到前台 onRestart() onSt
2018-01-15 16:17:52 431
原创 Java 基础 快速掌握java数据类型
一、基本数据类型byte: Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0int: 整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0long: 长整型,在内存中占64位,即8个
2018-01-15 14:17:53 264
原创 Java 基础 快速实现 冒泡排序 和 选择排序
一、实现原理太多了, 下面 上一段实现java代码public class SortUtils { int nums[] = {49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51}; /**
2018-01-15 14:03:01 286
原创 Java 基础快速掌握 TCP 3次握手和4次握手的理解
一、概述配图不是我自己的,来源于网络二、理解3次握手: 3次握手指的是TCP 建立连接 阶段 1.Client–>Service SYN 2.Client<–Service SYN+ACK 3.Client–>Service ACK4次握手: 4次握手指的是 TCP 断开连接 阶段 1.Client
2018-01-12 14:23:47 3320
原创 Android 快速实现防止网络重复请求&按钮重复点击
在日常开发过程中,偶尔会出现一些极端问题.比如 网络重复请求,很难过滤 请求的问题 下面一段代码,可以解决这个重复请求的问题.下面上一段代码:private long lastClick; // 防止网络重新请求if (System.currentTimeMillis() - lastClick <= 1000) { return; }
2018-01-12 09:41:45 6102 4
原创 Android 快速使用RxJava + OkHttp 进行网络请求
在android开发中,偶尔会遇到需要 将一个网络请求单独写 的需求 因为大框架不会因为一丝丝小改动,而去改变下面简单介绍一下用OKHttp+RxJava,进行网络请求 并且回调更新UI下面上一段代码: protected void srvGetData(String idCard, String startTime, String endTime) { mD
2018-01-11 14:43:20 1842
原创 Android 快速实现混淆编译(瘦身一部分)
一、概述在日常开发中,混淆是项目后期必不可少的一个重要操作 它有2大好处 第一: 混淆可以保护知识产权,保护公司的技术不被泄露 第二: 混淆可以在一定程度上,缩小apk的体积二、实现混淆的步骤也很简单 第一步:在 model\build.gradle android\buildTypes\release 分支下加入minifyEnabled true//混淆
2018-01-09 17:12:48 956
原创 Android 快速实现APK瘦身操作
在日常开发过程中,随着不断的geadle依赖以及图片的增加. 项目会变得越来越大 大到一定的地步,将无法满足项目组给出的需求下面简单介绍几个快速apk瘦身的方法1、model\build.gradle android\buildTypes\release 分支下加入minifyEnabled true//混淆zipAlignEnabled true //Zipalign优化shrinkRe
2018-01-09 16:29:42 445
原创 Android 黑技术-负数padding
日常开发过程中,经常会使用到一些自定义的控件 有些封装的不太好的自定义控件 因为默认给了边距 而需求又不需要那些边距 这个时候,负数padding就能完美解决问题了 只需要去源码看看数字 然后给加上负数padding 立马解决下面贴上一段代码:<com.xiaolei.view.EditView android:layout_width="0dp" android:
2018-01-09 15:52:55 2131
原创 Android 快速实现一个构造者模式
在日常开发中,经常会遇到 将一个方法覆写很多次情况. 原因都是因为第一次开发并没有考虑完善 为了不修改之前调用的代码,只能 将一个方法copy一次,然后重新开一个一样的方法 ,只为了一点点小改动 . 这样虽然能解决问题.但是时间长了,代码将巨恶心.无法维护下面给大家上一段建造者模式的代码:代码不全,仅供学习交流使用CalendarBuild .java/** * Description: 建
2018-01-09 14:43:13 939
原创 Android 快速接入选择、裁剪图片的库
在日常开发过程中,经常会遇到选择或者拍摄图片的需求 目前csdn和github上已经有很多的demo可以供大家选择了但是由于系统的相册,各大手机设备厂商都层次不齐的 最终做出来会出现不兼容等奇奇怪怪的bug下面给大家推荐一个好用的图片选择裁剪库:https://github.com/crazycodeboy/TakePhoto
2018-01-08 17:18:03 348
原创 Android 快速使用正则表达式,校验身份证号
开发过程中,会遇到一些常用的正则需求 比如,校验身份证号是否合法.下面一段简单的代码就能瞬间解决问题啦StringUtils.java /** * 身份证号校验 * * @param idCard * @return */ public static boolean isIdCardNum(String idCard) {
2018-01-08 16:47:35 822
原创 Android 快速绘制一个圆角矩形
android 开发过程中, 经常需要绘制一些简单的颜色图形.下面贴上一段最简单的图形.圆角矩形:res\drawable\shape_small_label.xmlshape xmlns:android="http://schemas.android.com/apk/res/android"> solid android:color="#f
2018-01-08 10:39:58 8137
原创 Android 快速将代码上传到"码云"git
一、概述本文的最终目的,是为了让开发者.在开发过程中, 快速 接入各版本的 沉浸式状态栏 .简单说说什么叫做沉浸式状态栏吧. 就是将内容区域,渗透到了状态栏中的部分,叫做沉浸式状态栏 上图:4.4效果图-顶部带有一丝丝阴影5.0效果图-完全透明重点地方说说: android 沉浸式状态栏 最低的 版本 是4.4 api 19 到了 5.0 api 21 之后 ,就变得稍稍不太一样了.看了不少
2018-01-07 22:27:39 750
原创 Android 快速实现状态栏透明样式
在手机 app 开发过程中,经常会遇到一种需求,需要将 内容区域 顶到 状态栏 中去.这个时候,下面一段代码,就能很轻松解决问题了.上代码之前先上效果图:下面上一段代码:getWindow().requestFeature(Window.FEATURE_NO_TITLE); if(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
2018-01-07 21:38:24 388
原创 Android 屏幕适配解决方案
大家好,简单说说android 屏幕的几个名词 1、dpi : 一英寸的屏幕中有多少点儿 2、密度 Density 一个点儿多少像素 px 3、分辨率 长宽多少像素 px参考资料: http://blog.csdn.net/feng88724/article/details/6599821适配第一步知道 即将适配 手机的密度,也就是一个dp多少px 调用
2018-01-05 11:45:34 2134 1
原创 Android Studio 中运行java 代码 (模拟简单的java se 中的 main )(跑 junit )
作用&价值:日常开发过程中,难免会遇到一些 需要跑一段非常简答的java代码 的时候.比如: 1、跑一段截取字符串的测试代码 2、跑一段copy本机file的代码而此时,android studio 的工程却是android 工程,这个时候,无论如何 main(String[] args)函数都是运行不起来的.解决方法:1、依赖 testImplementation 'junit:juni
2018-01-04 15:33:49 1429
原创 RxAndroid/RxJava 之 Rxlifecycle 的使用
依赖代码:compile 'com.trello:rxlifecycle:1.0'compile 'com.trello:rxlifecycle-components:1.0'作用&价值:作用: 用来解决rxjava在切换线程的时候,出线程错误 bug 用的 价值: 简单方便,易处理,管事儿!!!详细说明: 该项目是为了防止 RxJava 中 subscription 导致 内存泄漏 而诞
2018-01-03 16:44:20 1340
原创 retrofit2 的使用 ,绝对干货,希望收藏 rxjava + retrofit + okhttp
依赖代码: compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2' compile 'com.squareup.okh
2018-01-02 17:34:29 1258
原创 开发工具打造: .android 文件夹移动默认位置
.android 文件夹是用来存放 avd 模拟器文件的文件夹. 因为默认是 C盘 的. 占用空间比较大.很不爽 将它移动到其它盘其实很简单 只需要一个步骤: 1. 配置环境变量 ANDROID_SDK_HOME变量的内容,就是sdk文件夹配置完成之后,模拟器将自动把avd下载到sdk文件夹中 搞定!下面贴一张图:
2018-01-01 15:17:04 5086
原创 Android RxJava 2 的用法 just 、from、map、subscribe、flatmap、Flowable、Function、Consumer ...
先简单说说RxJava的用途与价值用途: 异步 (也就是开线程跳转) 价值: 面对复杂的逻辑,它依然 简洁 ,代码 易读RxJava2 与 RxJava 最大的不一样的地方,就是 Flowable ,这个 Flowable 取代了Rxjava 中的 简单的使用:下面展示一段代码:Flowable .fromArray(weeks) .map(new Functi
2017-12-31 18:34:16 10624
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人