- 博客(38)
- 资源 (20)
- 收藏
- 关注
原创 GreenDao 使用介绍
地址项目环境配置混淆简单使用介绍其他说明地址http://greenrobot.org/greendao/https://github.com/greenrobot/greenDAO项目环境配置在工程的根目录的build.gradle中配置buildscript { repositories { jcenter() mavenCentral()
2017-12-06 09:11:30 776
原创 你可能需要了解的HTTP
TCPIP分层TCP协议如何保证可靠传输HTTP报文HTTP状态码HTTP首部HTTPSTCP/IP分层应用层 传输层 网络层 数据链路层http协议位于 应用层 传输层有俩个性质不同的协议 TCP UDP ,传输层把从应用层处收到的数据(HTTP请求报文)进行分割,转发到网络层网络层处理数据包TCP协议TCP位于传输层,提供可靠的字节流服务字节流服务是指,为了方便传输,将大块
2017-11-15 16:30:25 774
原创 IntentService 从源码分析
为什么要提供 IntentServiceIntentService 为什么可以执行耗时操作如何通过ServiceHandler发送消息为什么要提供 IntentService解析 Service 是执行在UI线程的,不能进行耗时操作。IntentService 为什么可以执行耗时操作ServiceHandler 是 Handler 的一个子类HandlerThread 是 Thread 的
2017-11-06 11:32:00 673
原创 String 简单分析
String 基本常识String 内存分配直接赋值通过newString 的比较主要是 equalsString StringBuffer StringBuilderString 基本常识通过直观看代码得到的 String 是 final 的不可继承String 对象是不可变的。查看源码或者JDK文档可以看出来,String里面每一个会修改String值的方法,都会创建一个新的对
2017-11-05 11:32:53 840
原创 Java equals == 简单分析
主要是分析在比较对象的时候的情景为什么要有equalsJava不支持运算符的重载 Java方法可以重写== 的局限性== 是什么== 比较俩个对象的内存引用。如果俩个对象的引用完全相同(指向同一个对象)时,返回true,否则返回false。但是 == 常用于比较基本数据类型equals 是什么equals 方法定义在Object中,可以根据具体的业务逻辑进行重写。注意重写该方法的时候,有
2017-11-04 11:35:55 624
原创 HashMap的简单源码分析
关于HashMap关于HashMap容量加载因子NodeNode数组1.容量2.加载因子1和2的决定了方法resize() 并且加载因子会决定空间的利用率和hash冲突的几率, 默认的加载因子是0.75 final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = (ol
2017-11-02 22:58:23 580
原创 Java取一个数组里面第二大的数据
这边博客主要是介绍一道面试题的解法。 取一个数组里面第二大的数据。这个题目本身其实不是难,有多种解法,但是比较容易忽略的是这道题目里面其实有几个坑的地方 1. 数组为空或数组只有一个数据,数组非法 2. 数组里面所有数据都相等,不存在第二大的数据 3. 数组里面有多个最大值,下面来介绍几种不同的方法实现第一种 排序/** * 从一个从大到小排序的数组中选中第二大的数 *
2016-03-07 18:00:19 6057 1
原创 Java关于排序的介绍3-高级排序
本篇博客主要是介绍-希尔排序和快速排序希尔排序 希尔排序是基于插入排序(关于插入排序的介绍请查看简单排序)。 希尔排序主要是解决了插入排序复制次数太多的问题。例如对一个序列进行从小到大的排序,如果有一个很小的数据在序列的末尾,那么当对该数据进行操作的时候,他左边已经有序的数据需要进行大量的进行右移复制操作。希尔排序会选择一个合理的间隔,开始进行排序,这样实现了数据的大跨度移动,就避免了大量数据的
2016-03-04 09:53:14 1260
原创 Java关于排序的介绍2-归并排序
本篇博客主要是介绍归并排序归并排序的核心是归并俩个已经有序的数组 首先我们先针对俩个有序的数组进行合并排序/** * arr1 第一个有序的数组 * size1 数组一的大小 * arr2 第二个有序的数组 * size2 数组二的大小 * arr3 保存数组一和数组二合并以后并排序的数组 */ public static void sort
2016-03-03 09:11:10 895
原创 Java关于排序的介绍1-简单排序
本篇博客主要是介绍几种常用的简单排序的代码首先是介绍-冒泡排序 下面这个冒泡排序是比较简单粗暴的(不建议使用) 进行N(数组长度)趟比较 每趟比较都把所有的数据进行比较for (int i=0;i<arrs.length;i++) { for (int j=0;j<arrs.length-1;j++) { if (arrs[j] > ar
2016-03-02 10:04:10 1153
原创 Android属性动画实战教程中篇
本来预计本系列博客只有俩篇,但是考虑到后面的知识点比较重要,所以拆开为俩篇博客来介绍,一篇理论和一篇例子。 有想直接了解用法,用到项目中,可以看上一篇博客Android属性动画实战教程开篇 下面开始本篇博客的内容。本篇博客主要是介绍插值器(TimeInterpolator)和估值器(TypeEvaluator)根据参考 郭霖属性动画的系列博客 还有配合 任玉刚-Android艺术开发探索-Andr
2016-02-17 10:37:06 1001
原创 Android属性动画实战教程开篇
本系列博客会分俩篇本篇博客主要是会介绍属性动画代码使用和xml中使用关于View动画和属性动画的区别不做过多的介绍,当然涉及到的地方会简单的提一下。好了废话不多说,直接上内容首先介绍代码中使用属性动画首先介绍几个比较重要的类ValueAnimatorObjectAnimatorAnimatorSet其中ValueAnimator是一个基类,他主要是实现了属性动画值的变化,没有任何的动画效
2016-01-08 17:13:31 1332
原创 Activity切换动画效果
本篇博客主要是介绍俩种实现activity切换动画效果 第一种方式通过代码实现在 启动新activity/finish activity 后面通过调用overridePendingTransition实现切换的动画通过该方法实现需要注意的地方overridePendingTransition改方法的调用一定要放在启动新activity/finish activity 后面,否则没有效果最
2016-01-07 16:37:20 862
原创 OKHttp使用简单介绍,实用教程
OKHttp使用简单介绍,实用教程 鸿洋大神关于OKHttp教程 OKHttp源码解析本篇博客主要是讲解一个关于okhttp的实际使用。 所以这里主要是介绍异步请求。okhttp get请求如果有参数首先需要拼接访问URL/** * 获取拼接参数 * * @return String 可能为null */ public String sp
2015-12-22 15:12:12 2124
原创 Android 登录界面软键盘弹出以后界面上移
这篇博客主要是介绍在登陆界面,由于软键盘的弹出导致登录按钮不可见对于,造成不好额用户体验进行修改。主要是实现,在输入账号和密码的使用使界面上移,到达登录按钮显示的效果。本篇博客主要是通过LayoutParams实现 (弊端 效果是瞬间完成,可以通过Scroller或者动画实现平滑一定效果)布局界面很简单就不给代码,文章最后会给上源码下载地址核心代码private
2015-11-02 11:53:47 4746
原创 百度地图API使用系列4-基本地图2
继续为大家带来 百度地图API 系列博文这篇博文主要介绍一下 使用百度地图 进行几何图形覆盖物的显示如果是刚搭建工程的小伙伴可以参考前面几篇的博文介绍准备工作显示地图基本地图1好了下面开始我们本篇博文之旅首先介绍百度地图支持显示的几何图形1.点(Dot) 2.折线(Polyline) 3.弧线(Arc) 4.圆(Circl
2015-09-29 18:02:56 2363 1
原创 使用ZXing扫描条形码和二维码
主要是介绍使用ZXing库进行条形码和二维码的扫描本帖里面使用的库是别人精简以后的 在代码注释里面作者 - Ryan.Tang 这里主要是介绍一下关于扫描界面 下面是关于属性的介绍ScanView核心源码解析ScanView 自定义属性
2015-08-05 16:59:31 2010 1
原创 SlidingMenu 详解系列(一)API介绍
SlidingMenu 第一种形式 直接通过 new 的形式 获取 SlidingMenu SlidingMenu mSlidingMenu = new SlidingMenu(this); 设置 SlidingMenu 的属性 设置菜单的滑出形式 右 左 左右(存在二级菜单) setMode mSlidingMenu.setMode(SlidingM
2015-07-21 18:11:15 1799
原创 Android Studio 快捷键
覆写方法 Ctrl + O实现接口 Ctrl + I为代码添加代码环绕块例如(if/else try/catch) Ctrl + Alt + T快速生成Alt + Insert代码提示 Alt + Enter去除多余的引用 Ctrl + Alt + O整理代码 Ctrl + Alt + L 删除行 Ctrl + Y剪切行 Ctrl + X查找 Ctrl +
2015-07-02 10:07:48 1188 1
原创 android 文字尺寸(宽高)的测量
FontMetrics可以测量高度关于FontMetrics的几个重要属性的解析 1.ascent2.descent3.top4.bottom5.leading6.baseline 理解这个是重点 可以理解为是X轴 注意 android 坐标系的特点 Y轴 向下是正方向 向上是负方向 关于 baseline 的确定 在自定义 view 的时候
2015-05-27 08:55:53 12588 2
原创 layout_gravity和gravity区别
layout_gravity 是控制组件在父组件中的位置gravity 是控制组件的子组件/内容(文字)在组件中的位置主要是注意 layout_gravity 在 LinearLayout(线性布局)中的应用与线性布局的方向相关 对应属性 android:orientation="vertical|horizontal"1.vertical 横向属性起作用 例如 left
2015-05-05 15:04:28 856
原创 Arrays.asList() 得到 集合 执行 add() 和 remove() 抛 UnsupportedOperationException 异常
通过 Arrays.asList() 得到集合对这个集合进行 add() 和 remove() 操作抛出java.lang.UnsupportedOperationException异常直接根据 甲骨文官方的api 解释 入手static List asList(T... a)Returns a fixed-size list backed by the specif
2015-03-25 09:34:10 924
原创 百度地图API使用系列3-基本地图1
百度基本地图使用1关于百度地图申请开发者key 可以参考前面的博客百度地图API使用系列1-准备工作 关于搭建工程的可以参考前面的博客百度地图API使用系列2-显示地图 这一篇博客介绍基本地图使用里面的地图类型、显示实时交通图、在地图显示一个Marker。 这里要注意的是关于地图的操作不是有显示地图的控件直接去完成,百度为他添加了一个属性B
2014-12-29 15:09:03 2975
原创 百度地图API使用系列2-显示地图
开始百度地图的应用 首先应该先去下载百度提供给我们的SDK 包括开发包 示例代码 API登录下面地址http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5 这些根据自己的开发需要自己决定下载 -> 情况容许全部下载也不大 1. 导入工
2014-12-26 15:14:41 1950
原创 百度地图API使用系列1-准备工作
命令行得到SHA1 指令 win+Rcmd输入 cd .android输入keytool -list -v -keystore debug.keystore输入android输入密钥库口令就是 android 这里注意的就是在输入的时候是不回显的输入完直接回车即可会显示好多指
2014-12-26 14:43:04 1229
原创 Google官方高大上的下拉刷新控件 SwipeRefreshLayout 使用附源代码 绝对值得下载一看 不要积分
关于Google官方推出的下拉刷新的控件SwipeRefreshLayout的简单实用介绍Google官方的说明是这样的,翻译不好。大家可以自己去 Android开发者 自己看APISwipeRefreshLayout应该被使用在能够通过垂直的方向的刷新手势刷新内容的视图当中。当一个活动实例化这样的View的时候应该添加一个OnRefreshListener,当一个
2014-12-25 10:28:03 9831 1
原创 史上最强Android 开启照相或者是从本地相册选中一张图片以后先裁剪在保存并显示的讲解附源码i
整个程序的布局很简单只在一个垂直方向上的线性布局里面有俩个按钮(Button)和一个显示图片的控件(ImageView)这里就不给出这部分的代码了1.是打开系统的相册Intent albumIntent = new Intent(Intent.ACTION_PICK, null);albumIntent.setDataAndType(MediaStore.Images
2014-12-21 15:33:02 20921 15
原创 Android Service 解析(1)
服务Service需要在清单文件中配置启动ServicestartService会调用 Service 服务 的生命周期onCreate 这个生命周期 只会在Service 服务 第一次被启动的时候被调用onStartCommand停止服务stopService绑定服务bindService 需要三个参数 第一个参数 绑定服务的意图第二个
2014-11-29 00:46:04 701
原创 启动Activity
启动Activity的方式1.startActivity() 很简单,不做过多的解释了2.startActivityForResult() 当退出被启动的Activity的时候,会调用启动Activity的onActivityResult(int requestCode, int resultCode, Intent data)的方法 主要是参数的解析 reques
2014-11-21 00:20:09 628
原创 约瑟夫问题3
简单的问题描述:一个有五百个小孩拉成的圈子然后进行报数1 2 3,每次报到三的人退出游戏,并且下一次开始重新报数求最后留下来的小孩一开始是圈里面的第几个孩子。这一次的代码是加入了java的面向对象的思想先进行简单的分析这个问题里面可以分析出来个类 小孩类 小孩拉成的圈类先来定义小孩类package com.fly;/** *
2013-05-03 11:46:58 819
原创 约瑟夫问题2
简单的问题描述:一个有五百个小孩拉成的圈子然后进行报数1 2 3,每次报到三的人退出游戏,并且下一次开始重新报数求最后留下来的小孩一开始是圈里面的第几个孩子。这个太吗和上一个基本上好是一个代码,只有个别细微的区别 public class WhoQuit { public static void main(String[] args) { boolean[] ki
2013-05-03 11:44:05 854
原创 约瑟夫问题1
首先说一种根据C语言得到的一段代码简单的问题描述:一个有五百个小孩拉成的圈子然后进行报数1 2 3,每次报到三的人退出游戏,并且下一次开始重新报数求最后留下来的小孩一开始是圈里面的第几个孩子。public class Who { public static void main(String[] args) { int[] a = new int[500];//ne
2013-05-03 11:42:08 677
layout_gravity和gravity区别以及应用
2015-05-05
史上最强Android 开启照相或者是从本地相册选中一张图片以后先裁剪在保存并显示源代码
2014-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人