- 博客(14)
- 资源 (9)
- 收藏
- 关注
原创 ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android版本上实现ActionBar的效果和功能。当在4.0+的版本使用时,会使用Android自身的ActionBar,当在4.0之前的版本使用时,则会使用ActionBarSherlock自身自定义的一套框架来实现ActionBar的功能。 要获得ActionBarShe
2013-10-17 09:47:58
4476
原创 Android 应用开发 之使用LruCache和DiskLruCache来在内存和SD卡中缓存图片
之前写过一篇文章,通过Android提供的AsyncTask和自己实现的ThreadPool两种方法来实现了图片数据的异步加载,但在实际应用中,仅仅做到这样是不够的。我们在GridView中加载了大量的图片数据,但当我们向上向下来回滚动的时候,之前加载过的图片都会重新从服务器中获取,这样显然不是很好的用户体验。对用户来说,在上下滚动的时候,曾经看过不久的图片能够马上显示出来,而不是要等待从服务器下
2013-09-29 11:43:35
10752
2
原创 Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新。在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是通过AsyncTask来实现,另一种方式则是通过ThreadPool来实现,今天我们就通过一个例子来讲解和对比这两种实现方式。本文原创,如需转载,请注明转载地址http://blog.csdn.n
2013-09-25 11:53:54
16056
6
原创 Java 基本功 之中断线程的理解
设想这样的情景:我们的应用在某一个时间段内,需要一个子线程不停的在后台运行,这可能是一个下载过程,是一个对服务端socket的监听,也可能是一个绘图的计算过程。当我们想要终止线程的时候,我们会怎样做呢?是设定一个标志变量来控制跳出循环?还是使用thread.stop()?又或者是设置thread = null? 有的时候我们需要一种规范的思路,使用规范的方法来解决一类问题。 本
2013-09-23 10:27:54
3754
3
原创 Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高。一个相对完善的自定义控件在布局文件中和java代码中都应能灵活设置属性。另外在普通的布局中和AdapterView中都应能正确绘制,这就要求合理设计onMeasure方法,下文中会做比较详细的讲解。接下来我就一步一步来讲解如何设计和编写一个比较完善的自定义
2013-09-17 10:58:55
22926
2
原创 Android UI 之WaterFall瀑布流效果
所谓瀑布流效果,简单说就是宽度相同但是高度不同的一大堆图片,分成几列,然后像水流一样向下排列,并随着用户的上下滑动自动加载更多的图片内容。 语言描述比较抽象,具体效果看下面的截图:其实这个效果在web上应用的还蛮多的,在android上也有一些应用有用到。因为看起来参差不齐,所以比较有新鲜感,不像传统的九宫格那样千篇一律。 网络上相关的文章也有几篇,但是整理后发现要么忽略了OOM的处理,要么代码的逻辑相对来说有一点混乱,滑动效果也有一点卡顿。 所以后来自己干脆换了一下思路,重新实现了这样
2013-09-03 14:35:31
7752
4
原创 Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView
我们在自定义一个控件的时候,有时候会需要自己来绘制一些文本内容,这样就自然而然遇到确定文本的方位的问题,比如文本需要水平居中,垂直居中,居左,居右,左上。。。等等很多情况。其中最常见的就是文本位于控件的正中央了。 既然是文本居中,那就要让文本水平居中,并且同时垂直居中,我们分开来做。 水平居中的思路很简单,一种是得到控件的宽度A,使得文本的中心位置x坐标=A/2就可以了。还有一
2013-08-27 18:55:33
11643
1
原创 在java代码中进行px与dip(dp)、px与sp单位值的转换
其实都是以前保存的代码,最近发现自己的资料库很混乱,索性都整理成博客,方便以后自己要用的时候快速找到。DisplayUtil.java/** * 单位转换工具 * * @author carrey * */public class DisplayUtil { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param pxValue
2013-08-26 18:46:05
6384
2
原创 Android UI 之实现多级列表TreeView
所谓TreeView就是在Windows中常见的多级列表树,在Android中系统只默认提供了ListView和ExpandableListView两种列表,最多只支持到二级列表的实现,所以如果想要实现三级和更多层次的列表,就需要我们自己来做一些处理了。其实这个效果很久以前就有人想办法实现了,但是实现的效果有一些问题,我的实现思路主要也是来自于网络,但是在其基础上修正了逻辑上的一些错误,做了一
2013-08-23 16:43:02
20286
翻译 通知(Notifications)
通知(Notifications) 我们可以通过notification来在应用UI之外的地方来向用户展示信息。当你告诉系统来发布一个notification的时候,系统会首先在notification area里展示一个图标,如果用户想要查看通知的详细信息,需要打开notification drawer。notification area和notification dra
2013-07-19 21:03:12
3735
翻译 Task and Back Stack
Task and Back Stack *****************************************************************************************这是我自己以前学习的时候做的API翻译,自我感觉翻译的还可以,拿出来分享给大家,如果有解释不对的地方,还请指出。如果需要转载,请注明转载地址:如毛毛风的博客
2013-06-11 21:50:40
1767
原创 Android UI 之SlidingMenu实现方法(二)
前一段时间写了一篇 Android小教程 滑动菜单 SlidingMenu 实现方法 (一) 今天拓展一下,实现一个可以实现菜单页联动的SlidingMenu。 其实SlidingMenu的实现方实在太多太多,今天的实现思路在主体上也和上一篇文章中有所不同,尽量和大家分享多一些方法。另外功能上也更丰富一下。先来解释一下我们要实现的效果: 联动菜单页的意思就是我们在滑动主
2013-05-09 21:08:12
2515
2
原创 Android UI 之SlidingMenu实现方法(一)
SlidingMenu的实现方法有很多,今天先来分享一种方法。主要的思路是根据手指在屏幕上的滑动情况,不断更改一个页面的LayoutParams,然后请求重绘,造成这个页面随着手指而移动的效果。 先来看一看实现的效果:下面具体说一说思路,其实很简单: 我们的例子里面有两个页面,一个mainPage页面,相当于应用的主功能页面。另一个menuPage页面,就相当于是我
2013-04-23 21:34:36
3047
1
翻译 Android DownloadManager 的使用
从Android 2.3(API level 9)开始Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作。Download Manager处理HTTP连接并监控连接中的状态变化以及系统重启来确保每一个下载任务顺利完成。在大多数涉及到下载的情况中使用Download Manager都是不错的选择,特别是当用户切换不同的应用以后
2012-10-11 17:14:50
69521
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人