- 博客(18)
- 资源 (26)
- 收藏
- 关注
原创 Android学习小Demo(16)Android中使用已存在数据的SqliteDatabase
在Android中使用数据库,在一些情况下,需要导进一个已经有数据的数据库,然后在程序中去调用它,来实现我们的功能。比如在一个查询信用卡归属银行的小demo中,在输入框输入信用卡的前6位号码(这6位号码决定了信用卡的归属银行),点击查询按钮,就可以将其对应的银行给显示出来。下面我们来看看,程序中是如何实现这个功能的。1)Asset文件夹在Asset文件夹下面放上我们的数据库:...2)创建一个CreditCardDb类。在这个类中,我们要实现以下几个功能:2.1)要将数据库从assets
2014-03-31 21:58:47 2027
原创 Android中关于Volley的使用(七)认识 NetworkDispatcher 和 BasicNetwork
网络线程(NetworkDispatcher)主要做了几件事情:1)调用 mQueue的take()方法从队列中获取请求,如果没有请求,则一直阻塞在那里等待,直到队列中有新的请求到来。2)判断请求有没有被取消,如果被取消,则重新获取请求。3)调用Network对象将请求发送到网络中,并返回一个 NetworkResponse对象。4)调用请求的pareseNetworkResonse方法,将NetworkResponse对象解析成相对应的Response对象。5)判断请求是否需要缓存,如果需要缓存
2014-03-31 11:44:08 4926 1
原创 Android中关于Volley的使用(六)认识 CacheDispatcher
缓存线程(CacheDispatcher)主要做了几件事情:1)初始化本地缓存2)开始一个无限的循环,调用 mCacheQueue的take方法,来获得一个请求,而mCacheQueue是一个BlockingQueue,也就是说,当队列中没有请求的时候,take方法就会一直阻塞在这里,等待队列中的请求,而一旦队列中有新的请求进来了,那么它就会马上执行下去。3)判断请求是否已经取消,如果已经被取消了,则不需要再走下去。4)根据请求的CacheKey去缓存中寻找相对应的记录,如果找不到对应的记录,或者对
2014-03-31 10:58:15 4013
原创 LeetCode(一)关于GrayCode的实现
在LeetCode上面有一道题,是关于Gray Code的实现的。GrayCode是这样一种编码:1 位Gray Code :012 位Gray Code:先添加一个镜像,如下:0110然后,在原来的编码前面添加“0”,在镜像码前面添加“1”,如下:00011110而从2位变化到3位的Gray Code的实现方式跟从1位变化到2位的过程是一样的, 都是先添加镜
2014-03-21 23:02:36 1641
原创 Android中关于Volley的使用(五)从RequestQueue开始来深入认识Volley
在前面的几篇文章中,我们学习了如何用Volley去网络加载JSON数据,如何利用ImageRequest和NetworkImageView去网络加载数据,而关于Volley的使用,我们都是从下面一行代码开始的:Volley.newRequestQueue(this);这是Volley类创建了一个RequestQueue,而关于Volley的一切就是从这个时候开始的,我们就深入地学习一下在这个方法后面到底有着什么样的实现吧。我们来看看Volley类的实现:...Volley类只有两个方法,而主要
2014-03-21 00:01:54 9598 4
原创 Android学习小Demo(15)一个自定义AlertDialog的实现
在Android的应用中,很多时候,都会利用到 AlertDialog 来弹出信息,或者让用户进行选择,或者告知用户某些信息,而系统自带的背景效果,一般不能够满足需求,所以很多时候,就会存在自定义 AlertDialog 的需求。其实不仅是AlertDialog,为了完善一款应用,很多控件都需要自定义,比如前面文章中提到过的EditText 等。今天就讲一下如何在Android中自定义 AlertDialog,请先看下面的效果图:...在这个style中,a)会将Dialog的windowBackg
2014-03-18 00:03:57 3337
原创 Android学习小Demo(14)Android中关于PopupWindow的使用
在一些场景中,我们希望能够点击按钮, 然后弹出一个菜单,而这个菜单是显示在屏幕的中央的,那么在Android中可以通过PopupWindow来实现这个效果。...如上图中,我们点击“添加图片”按钮,然后在屏幕中央就弹出了一个菜单,可供我们选择“照相”,还是到“图库”中去选择。下面我们来看一下具体实现:...首先利用 LayoutInflater 将我们的布局 pw_take_photo.xml 给解析出来,然后调用 PopupWindow的构造函数,将 popupView 传给它,并同时指定宽度是
2014-03-17 00:03:23 3704
原创 Android中关于Volley的使用(四)利用NetworkImageView来加载图片
在使用Volley来从网络获取图片的时候,我们前面介绍了ImageRequest的使用,而其实Volley还提供了一个NetworkImageView类。利用这个类,我们可以更有效率地去从网络去获取图片,因为它里面帮我们多设置了一个缓存,帮我们自己去处理请求的队列。NetworkImageView类的具体使用方式如下:1)在XML中定义: <FrameLayout
2014-03-16 00:01:11 13139 4
原创 Android中关于Volley的使用(三)认识Volley的架构
首先,我们要先了解一下Volley的架构,简单地来说,就是三层:1)队列:将请求添加到Queue中2)缓存:在Cache中查找有没有缓存这个请求要的数据,2.1)有,请求如果过期了,到第 3)步,如果没有过期,直接返回一个Response。2.2)没有,到第 3)步3)网络:通过传进来的url 来发送请求,到网络中获取数据,然后返回一个Response,并判断是否要存到Cache中。结合上图,我们来简单地先说一下Volley的流程是怎么样的。第一步:通过Volley.newRequestQue
2014-03-14 13:43:43 3851 1
原创 算法学习(四)冒泡排序
冒泡排序的原理是:1)从0开始,比较相邻两个元素的大小,如果是按从小到大排序的话,则将大的元素往后往,反之,则将小的元素往后放,这样经过一轮的比较,就会将最大或者最小的数放到数组的最后面了。2)第二轮开始,还是从0开始,但是这一次呢,就不需要比较最后面那个元素了,因为它已经是最大了(这其实跟堆排序,找出最大数或者最小数,放到数组后端是一样的道理),假设数组长度为N,则第二轮只需要比较N-1个元素了。3)这样,每一轮结束,都会有一个当前最大素放到最后面,那么到第N-1轮的时候,其实就只剩一个元素了,于是
2014-03-13 00:03:08 1401
原创 Android学习小Demo(13)Android中关于ContentObserver的使用
在一些应用上,比如手机银行,QQ,微信等,很多时候我们都需要通过发送验证码到手机上,然后把验证码填上去,然后才能成功地继续去做下面一步事情。而如果每次我们都要离开当前界面,然后去查收短信,记住验证码,然后再回来输入到控件中,这感觉就会很麻烦,用户体验就会很差,而像微信等一些应用,则会在手机接到短信后,将信息中的验证码给抽出来,帮我们将其填到对应的控件中,多方便,对吧。这个功能就是通过ContentObserver来实现的。顾名思义,Content Observer,就是内容监听,它实现的功能就是对特定的
2014-03-11 23:59:58 2687 1
原创 Android中关于Volley的使用(二)加载Json数据
前面一篇关于Volley的文章中,我们学习了如何利用ImageRequest去网络中加载图片,那么今天我们就来学习一下如何利用volley去网络中加载Json格式数据,并将其展示在一个ListView上。1)数据源:private static final String WEATHER_LINK = "http://www.weather.com.cn/data/sk/101280101.html";这是由中国天气网提供的关于某个城市的天气预告的Json数据,大家直接点击链接进去 http://ww
2014-03-11 00:00:21 8714 13
原创 Android学习小Demo(12)TodoList实现ListView的分组实现
很多情况下, 我们想要ListView上面展示的东西是可以分组的,比如联系人列表,国家列表啊,这样看起来数据的展现比较有层次感,而且也有助于我们快速定位到某一个具体的条目上,具体效果请看下图:这是前面TodoList小demo的MainActivity,主要是来展现用户添加的任务的,在原来的基础上添加了分组的效果。...首先我们定义了下面两个数组,并且需要在构造的时候初始化它们: private int[] sectionIndices; private String[] sectionHead
2014-03-08 17:37:11 8697 24
原创 如何导进开源库StickyListHeaders
这一篇文章是为了告诉大家怎么导进StickyListHeaders开源库,并在项目中利用它的功能。其实跟我们使用v7 support library是一样的,大家也可以参考:https://developer.android.com/tools/support-library/setup.html#libs-without-res1)先去 https://github.
2014-03-08 17:36:43 6211 2
原创 Android学习小Demo(11)一个显示行线的自定义EditText
今天在处理一个EditText的时候,想着把EditText做成像一本作业本上的纸一样,每一行都可以由线条隔开,具体效果如下:1)最开始的思路一开始的想法是很简单的,找出每一行的高度,然后一行一行地画线不就好了吗,代码如下: viewHeight = getMeasuredHeight(); viewWidth = getMeasuredWidth();
2014-03-07 00:11:58 5284 1
原创 Android中关于Volley的使用(一)加载图片
在上面,我们可以看到,在ImageRequest的构造函数中,我们就可以直接将一些关于Bitmap的参数给传进去了,比如长宽等信息,然后在其返回的Response.Listener中获得返回的结果,就是一个Bitmap了,并在onResponse函数中对ImageView进行设置,最后将其添加到mQueue中。1)定义一个RequestQueue,如下:2)在OnCreate方法中对其进行初始化,this其实就是当前Activity,是一个Context类:3)创建ImageRequest对象,并将其
2014-03-05 00:32:08 6563 4
原创 Android中关于Volley的使用(零)Android中下载编译Volley
1)通过 git 下载 volley 源码,如下(我在这里是在cygwin里面去下载的):git clone https://android.googlesource.com/platform/frameworks/volley...2)在Window下用cmd命令进入到 volley目录,然后运行 "android update project -p .",后面的点表示当前目录 如下:...3)最后再用ant来编译成jar包就行,命令是"ant jar"。
2014-03-04 10:27:15 6675 6
原创 Android中从源码分析关于AsyncTask的使用
Android在框架层提供了异步任务类,AysncTask,用于执行后台任务,并将执行结果更新到UI线程。为什么要用异步任务呢?这是因为如果某个任务太耗时间的话,会阻塞UI主线程,而我们知道UI线程如果阻塞5秒的话,就会发生ANR(Application No Response)错误 ,就算没有发生,主界面上看起来也会卡卡的,这显然用户体验就不太好了。而AsyncTask类则在不影响UI线程的情况下,另起子线程去做那些耗时比较久的任务,比如我们在TodoList中去读取图片这种情况,然后将处理后的结果再更
2014-03-03 00:06:12 2725 1
Android联动ListView
2014-07-17
关于Fragment Demo的源代码
2014-06-05
Fragment和ViewPager使用Demo源代码
2014-04-09
导入已有数据的sqlitedb demo源代码
2014-03-31
Content Observer Demo 源代码
2014-03-11
volley demo 源代码 1
2014-03-10
SqliteDemo源代码
2014-02-12
NineoldAndroids jar 包
2014-01-26
Android 音乐播放器源码
2014-01-18
ApiDemoStudy
2014-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人