自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风口的碟

既然在风口就自在的飞吧~~

  • 博客(35)
  • 收藏
  • 关注

原创 ReactNative开源组件

开源组件:底部tab:https://github.com/exponentjs/react-native-tab-navigator轮播图:https://github.com/sincethere/react-native-bannerhttps://github.com/leecade/react-native-swiperView Page:http

2017-01-19 10:30:59 2029

原创 解决ScrollView下嵌套自定义ListView、GridView后依然显示不全的问题

当我们ScrollView下嵌套ListView、GridView时会出现显示不全的问题,这样我们大部分是会重写ListView、gridView一:重写ListView、gridView重写ListView:[java] view plain copypublic class MyListView extends L

2016-12-01 17:44:08 568

原创 如何解决Suggestion: use tools:overrideLibrary="" to force usage

应用在Android Studio Build的时候,抛出了如下异常:Error:Execution failed for task ':app:processInternalDebugManifest'.> Manifest merger failed : uses-sdk:minSdkVersion 11 cannot be smaller than version 14 decla

2016-08-04 10:34:17 21955 1

原创 Android调用摄像头后系统回收activity造成数据丢失

在做聊天模块时,有发送拍照的功能,奇葩的是别的手机都没问题,唯独红米note调用摄像头后返回页面没有任何响应,调试中发现返回的图片路径为空,返回的路径怎么能为空呢?后来发现是系统把activity回收掉了,返回来的时候,activity重新加载了,所有返回的图片路径已经不存在了,所以只能想办法恢复图片路径的数据,如下代码是开启摄像头和返回的信息:Intent intent = new In

2016-07-14 17:35:47 2762

原创 EditText中imeOptions属性设置无效时解决方法

虽然通常输入法软键盘右下角会是回车按键但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”而决定这个图标的变换的参数就是EditText中的 Android:imeOptionsandroid:i

2016-07-12 11:13:44 780

原创 安卓常用开源库

GitHub上前100名Android 开源库。项目名称项目简介1. react-native这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web 应用和 Native 应用的优势, 可以使用 JavaScript 来开发

2016-05-18 14:23:58 4969 2

原创 算法18 之总结篇

前面介绍了经典的数据结构和算法,这一节我们对这些数据结构和算法做一个总结,具体细节,请参见各个章节的详细介绍,这里我们用表格来呈现它们的效率。1. 数据结构部分数据结构中常用的操作的效率表通用数据结构查找 插入  删除遍历 数组

2016-05-13 17:42:52 382

原创 算法17 之拓扑排序

这一节我们学习一个新的排序算法,准确的来说,应该叫“有向图的拓扑排序”。所谓有向图,就是A->B,但是B不能到A。与无向图的区别是,它的边在邻接矩阵里只有一项(友情提示:如果对图这种数据结构部不太了解的话,可以先看一下这篇博文:数据结构和算法之 无向图。因为拓扑排序是基于图这种数据结构的)。有向图的邻接矩阵如下表所示: A

2016-05-13 17:41:46 418

原创 算法16 之堆排序

堆排序,顾名思义就是利用堆这个数据结构对数据项进行排序,前面提到过,堆数据结构中,节点大于或等于自己的子节点。那么我们可以将待排序的数据项依次添加到堆中,然后再依次取出根节点即可。从堆中取出的数据项是从大到小排列的。因为根节点永远是最大的,而堆中永远是取根节点。如果对堆这种数据结构不太了解的话,可以先看这篇博文:数据结构和算法之 堆,这里不再赘述。下面我们来看看堆排序的实现(如果程序有

2016-05-13 17:40:20 317

原创 算法15 之二叉树排序

顾名思义,二叉树排序就是利用二叉搜索树的特点进行排序,前面提到过二叉搜索树的特点是,左子节点比自己小,右子节点比自己大,那么二叉树排序的思想就是先将待排序序列逐个添加到二叉搜索树中去,再通过中序遍历二叉搜索树就可以将数据从小到大取出来。如果对二叉树还不太了解,请看这篇博文:数据结构和算法之二叉树 ,这里不再赘述。下面我们来看看二叉树排序的实现:[java] view

2016-05-13 17:38:56 371

原创 算法14 之归并排序

归并算法的中心是归并两个已经有序的数组。归并两个有序数组A和B,就生成了第三个数组C,数组C包含数组A和B的所有数据项,并且使它们有序的排列在数组C中。首先我们来看看归并的过程,然后看它是如何在排序中使用的。        假设有两个有序数组,不要求有相同的大小。设数组A有4个数据项,数组B有6个数据项,它们要被归并到数组C中,开始时数组C有10个存储空间,归并过程如下图所示:

2016-05-13 17:38:03 315

原创 算法13 之快速排序

上一节我们学习了一个高级排序算法:希尔排序,这一节我们将讨论另一个高级排序算法:快速排序。        快速排序算法是最流行的排序算法,因为有充足的理由,在大多数情况下,快速排序都是最快的,执行时间为O(NlogN)级(这只是对内部排序或者说随机存储器内的排序而言,对于在磁盘文件中的数据进行的排序,其他的排序算法可能更好)。快速排序本质上通过一个数组划分为两个子数组,然后递归地调用自

2016-05-13 17:36:14 306

原创 算法12 之希尔排序

上一章我们学习了冒泡排序、选择排序和插入排序三种基础排序算法,这三种排序算法比较简单,时间复杂度均为O(N2),效率不高。这节我们讨论一个高级排序算法:希尔排序。希尔排序是基于插入排序的,插入排序有个弊端,假设一个很小的数据项在很靠近右端的位置上,那么所有的中间数据项都必须向右移动一位,这个步骤对每一个数据项都执行了将近N次的复制,这也是插入排序效率为O(N2)的原因。        希尔

2016-05-13 17:34:54 439

原创 算法11 之基础排序

前10节我们学习了一些经典的数据结构,从这节开始,我们将学习一些排序算法。这一节我们先学习几个基础排序算法:冒泡排序,选择排序和插入排序。1. 冒泡排序        冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序算法的基本流程是:每一轮从头开始两两比较,将较大的项放在较小项的右边,这样每轮下来保

2016-05-13 17:33:57 299

原创 算法10 之带权图

上一节我们已经看到了图的边可以有方向,这一节里,我们将探讨边的另一个特性:权值。例如,如果带权图的顶点代表城市,边的权可能代表城市之间的距离,或者城市之间的路费,或者之间的车流量等等。    带权图归根究底还是图,上一节那些图的基本操作,例如广度优先搜索和深度优先搜索等都是一样的,在这一节里,我们主要来探讨一下带权图的最小生成树最短路径问题。最小生成树问题 

2016-05-13 17:31:53 1957

原创 算法09 之图

在计算机程序设计中,图是最常用的结构之一。图是一种与树有些相像的数据结构,实际上,从数学意义上说,树是图的一种。然而在计算机程序设计中,图的应用方式与树不同。        前面讨论的数据结构都有一个框架,这个框架都是由相应的算法设定的。比如说,二叉树是那样一个形状,就是因为那样的形状使它更容易搜索数据和插入新数据,树的边表示了从一个节点到另一个节点的快捷方式。而图通常有一个固定的形状,这

2016-05-13 17:30:36 347

原创 算法08 之堆

优先级队列可以用有序数组来实现,这种做法的问题是,尽管删除最大数据项的时间复杂度为O(1),但是插入还是需要较长的O(N)时间,这是因为必须移动数组中平均一半的数据项以插入新数据项,并在完成插入后,数组依然有序。        这里介绍实现优先级队列的另一种结构:堆。堆是一种树,并非java和C++等编译语言里的“堆”。由它实现的优先级队列的插入和删除的时间复杂度都是O(logN)。尽管这

2016-05-13 17:28:40 273

原创 算法07 之哈希表

哈希表也称为散列表,是根据关键字值(key value)而直接进行访问的数据结构。也就是说,它通过把关键字值映射到一个位置来访问记录,以加快查找的速度。这个映射函数称为哈希函数(也称为散列函数),映射过程称为哈希化,存放记录的数组叫做散列表。比如我们可以用下面的方法将关键字映射成数组的下标:arrayIndex = hugeNumber % arraySize。        哈希化之后难

2016-05-13 17:27:12 309

原创 算法06 之2-3-4树

从第4节的分析中可以看出,二叉搜索树是个很好的数据结构,可以快速地找到一个给定关键字的数据项,并且可以快速地插入和删除数据项。但是二叉搜索树有个很麻烦的问题,如果树中插入的是随机数据,则执行效果很好,但如果插入的是有序或者逆序的数据,那么二叉搜索树的执行速度就变得很慢。因为当插入数值有序时,二叉树就是非平衡的了,它的快速查找、插入和删除指定数据项的能力就丧失了。    2-3-4树是一个多

2016-05-13 17:25:12 364

原创 算法05 之红-黑树

从第4节的分析中可以看出,二叉搜索树是个很好的数据结构,可以快速地找到一个给定关键字的数据项,并且可以快速地插入和删除数据项。但是二叉搜索树有个很麻烦的问题,如果树中插入的是随机数据,则执行效果很好,但如果插入的是有序或者逆序的数据,那么二叉搜索树的执行速度就变得很慢。因为当插入数值有序时,二叉树就是非平衡的了,排在一条线上,其实就变成了一个链表……它的快速查找、插入和删除指定数据项的能力就丧失了

2016-05-13 17:23:34 1644

原创 算法04 之二叉树

在有序数组中,可以快速找到特定的值,但是想在有序数组中插入一个新的数据项,就必须首先找出新数据项插入的位置,然后将比新数据项大的数据项向后移动一位,来给新的数据项腾出空间,删除同理,这样移动很费时。显而易见,如果要做很多的插入和删除操作和删除操作,就不该选用有序数组。        另一方面,链表中可以快速添加和删除某个数据项,但是在链表中查找数据项可不容易,必须从头开始访问链表的每一个数

2016-05-13 17:15:38 252

原创 算法03 之链表

在第一章的数组中,我们看到数组作为数据存储结构有一定的缺陷。在无序数组中,搜索时低效的;而在有序数组中,插入效率又很低;不管在哪一种数组中删除效率都很低。况且一个数组创建后,它的大小是无法改变的。        在本章中,我们将讨论下链表这个数据结构,它可以解决上面的一些问题。链表可能是继数组之后第二种使用得最广泛的通用数据结构了。本章主要讨论单链表和双向链表。        顾名

2016-05-13 17:13:59 237

原创 算法02 之栈与队列

我们知道,在数组中,若知道数据项的下标,便可立即访问该数据项,或者通过顺序搜索数据项,访问到数组中的各个数据项。但是栈和队列不同,它们的访问是受限制的,即在特定时刻只有一个数据项可以被读取或者被删除。众所周知,栈是先进后出,只能访问栈顶的数据,队列是先进先出,只能访问头部数据。这里不再赘述。    栈的主要机制可以用数组来实现,也可以用链表来实现,下面用数组来实现栈的基本操作:

2016-05-13 17:12:34 226

原创 算法01 之数组

数组是应用最广泛的数据存储结构。它被植入到大部分的编程语言中,由于数组十分易懂,所以在这里就不赘述,主要附上两端代码,一个是普通的数组,另一个是有序数组。有序数组是按关键字升序(或降序)排列的,这种排列使快速查找数据项成为可能,即可以使用二分查找。    普通数组的java代码:[java] view plain copy publi

2016-05-13 17:10:38 240

原创 算法的时间复杂度和空间复杂度

1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。(2)时间复杂度

2016-05-13 17:07:07 325

原创 安卓应用在后台运行时,通知栏收到应用消息提醒时取消铃声和震动

应用里有环信的即时通讯模块,所以在应用的设置里加上了设置接收消息提醒的开关,调用了环信里的关闭提醒的方法,环信做了相应的处理,但是随后测试发现一个问题,就是关闭接收消息提醒后,应用在前台运行时,收到新消息后,确实没有铃声和震动提醒,但是将应用放到后台运行时,当接收到新消息时,如果手机没有静音,通知栏还会有铃声和震动提醒,也就是代码里没有控制系统的铃声和震动关闭,所以找到这个问题后,刚开始索性就把给

2016-03-10 15:20:43 10245 1

转载 通知栏Notification的整合

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展开的通知列表。它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等。

2016-03-10 14:55:56 1179

原创 Adapter的getView()方法中无法通过代码获取布局文件中View的大小

项目中的需求是在数据库中查出所有答案,用ProgressBar展示出分数,如图:所以根据答对的题数不同,ProgressBar的进度不同,下方的箭头位置也会随之变化,所以我通过代码来获取ProgressBar的实际大小,结果在该页面初始化结束后,所有箭头都依然在ProgressBar的最前端,只有将显示的条目手动滑上去,出现新的条目后,箭头的位置才会变化,后来发现:view.get

2016-03-08 16:14:54 531

转载 Android开发之内存管理

学习了下android的SDK里对内存管理部分的描述,结合搜集的一些资料汇分享总如下:在任何软件开发环境中,RAM都是非常宝贵资源。在移动操作系统里,由于物理内存的限制,它会变得更加的宝贵。虽然Android的Dalvik虚拟机会常规的执行垃圾回收,但是开发人员仍然不能忽略什么时候、在哪里申请和释放内存资源。为了能够使垃圾回收器从应用里正常的回收内存资源,开发人员需要避免产生内存泄露,注意

2016-02-22 17:50:51 354

原创 git submodule常用的几个命令

开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦的事情。而且一旦更新了就要同步到多个引用的系统中,这个时候使用git submodule,然后执行: git submodule update就全部搞定了。下面就以Android开发为例,讲述下submodule的具体用法。假设一个Android Demo的目录是这样的

2016-02-15 14:36:54 1229

原创 解决Error:Configuration with name 'debug' not found.

在同步开发时,同事添加了某个module,自己同步代码后会出现Error:Configuration with name 'debug' not found.的错误,这是因为同步时不会自动把远程仓库下载下来需要你自己初始化下载,这时只要执行:git submodule update --init --recursive执行完后再同步代码,网络没问题的话就会顺利解决这个错误!

2016-02-15 11:50:22 14357

原创 listView单选实现的两种方式

1. listview有个属性android:choiceMode ="singleChoice" 表示选择一个 android:choiceMode ="multipleChoice"表示选择两个 2. 布局中如下<Button android:id="@+id/button" android:layout_width= "match_parent"

2016-01-08 10:33:03 704

原创 调用startActivityForResult,onActivityResult无响应的问题

人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数。但你是否遭遇过onActivityResult()不执行或者未按预想的那样执行的情况呢?这里我总结了三种情况: 1、执行startActivityForResult,没等到被调用的 Activity 返回,onActivityR

2016-01-05 16:56:11 312

原创 Anaroid WebView详解

资源描述:1.android提供了webView控件专门用来浏览网页。然后在程序中装载webView控件,设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。 2.下面是设置一些常用属性、状态的方法WebSe

2015-07-24 16:46:50 344

转载 Android 屏幕适配方案

1、概述大家在Android开发时,肯定会觉得屏幕适配是个尤其痛苦的事,各种屏幕尺寸适配起来蛋疼无比。如果我们换个角度我们看下这个问题,不知道大家有没有了解过web前端开发,或者说大家对于网页都不陌生吧,其实适配的问题在web页面的设计中理论上也存在,为什么这么说呢?电脑的显示器的分辨率、包括手机分辨率,我敢说分辨率的种类远超过Android设备的分辨率,那么有一个很奇怪的现象:为

2015-06-22 16:49:00 334

空空如也

空空如也

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

TA关注的人

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