自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 资源 (1)
  • 收藏
  • 关注

原创 IOS定位

IOS中的core location提供了定位功能,至于三种定位方式就不多讲了,GPS,蜂窝基站,Wifi。开发定位服务要切记的是,定位服务是很耗电的,一般来讲,精确度越高,越耗电,轮询次数越多,越耗电,所以在逻辑上要考虑清楚,减少不必要的电量消耗。 CLLocationManager *locationManager = [[CLLocationManager alloc]

2013-04-22 15:57:59 1205

原创 导航视图控制器UINavigationController

http://code4app.com/course/28-2972-3395http://www.cnblogs.com/smileEvday/archive/2012/05/14/2495153.html基本概念导航视图控制器是用于构建分层应用程序的主要工具,管理着多个内容视图的压入和弹出。自身提供了视图切换的动画效果。父类是UIViewController,所有视

2013-04-21 10:50:18 1875

转载 视图控制器与通知

视频课程:http://code4app.com/course/28-2957-3219iOS开发之视图控制器(UIViewController): http://liuzhichao.com/p/1408.html视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController

2013-04-19 13:06:15 1150

转载 UI开发基础和控件

来自视频课件: http://code4app.com/course/28-2954-3199UIKit是一个提供了在IOS实现了图形,事件驱动程序的框架UIView是视图的基类UIViewController是视图控制器的基类UIResponder表示是一个可以在屏幕上接受触摸事件的对象。窗口(UIWindow)是视图的一个子类,窗口的主要功能,1,提供区域来显示视图,2将事

2013-04-15 17:38:57 937

原创 基础控件属性

UIView的属性。1,Mode属性用于定义图像在视图内部的对其方式,以及是否缩放以适应视图。默认值是scale。但是,记住任何让图像缩放的选项都可能增加处理开销,因此最好避开这些选项,并在导入图像之前调整好他们的大小。2,tag属性只是与图像试图绑定在一起的一个数值。类似android中的view.setTag和getTag。3,Interaction复选框第一个User

2013-04-14 12:19:14 2039

原创 自定义Dialog&DialogFragment

DialogFragment这是个展示dialog窗口的fragment。这个fragment包含了一个Dialog对象,它的展示是基于fragment的状态。控制dialog(决定要show,hide,dismiss等)应该通过dialogfragment的api而不是dialog的实现这个类需要通过override方法onCreateView(LayoutInflater, ViewG

2013-01-31 14:10:45 16314 2

转载 AsyncTask使用须知

AsyncTask的实现原理就是封装了的线程池,具体见AsyncTask实现原理。在1.5中初始引入的时候, AsyncTask 执行( AsyncTask.execute() )起来是顺序的,当同时执行多个 AsyncTask的时候,他们会按照顺序一个一个执行。前面一个执行完才会执行后面一个。这样当同时执行多个比较耗时的任务的时候 可能不是您期望的结果,具体情况就像是execute的

2013-01-26 01:30:32 8772 3

转载 内部Handler类引起内存泄露

转载于:http://yunfeng.sinaapp.com/?p=468如果您在Activity中定义了一个内部Handler类,如下代码:public class MainActivity extends Activity { private Handler mHandler = new Handler() { @Override

2013-01-26 01:29:39 2139

原创 ActionBarSherlock

上一篇中介绍了ActionBar,http://blog.csdn.net/pipisky2006/article/details/8521834ActionBarSherlock 是Android compatibility library 的一个扩展, 不知道什么原因 Android 兼容开发包没有包含ActionBar. 所以就有了ActionBarSherlock. 其使用方式和

2013-01-26 01:27:44 3694

转载 Action Bar

Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Androi

2013-01-20 13:45:58 4958 3

转载 Fragments

(一)Fragments要点:a) Fragment表现为一个Activity用户界面的一部分;b) 你可以合并多个fragment在一个单独的activity中;c) 也可以在多个activity中重复使用一个Fragment;d) Fragment有自己的生命周期;e) 接收自己的输入事件;f) 在activity运行的过程中,你可以添加或移除一个Fragment;

2013-01-19 03:45:32 2960

原创 ListView特效2(列表拖拽)

即listView特效1,http://blog.csdn.net/pipisky2006/article/details/7393475,好久之后列表的拖拽效果(参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)重写ListView中onInterceptTouchEvent(),onTouchEvent()

2013-01-15 00:38:31 1953

原创 命令模式下的异步消息处理(Handler,Message,Looper,Thread)

不熟悉命令模式可以先读读http://blog.csdn.net/pipisky2006/article/details/6748226,下文中如果图片不能完全展示可以在新标签页打开图片。下面的是标准的命令模式的类图。接受者:Handler,执行消息处理操作。请求者:Looper,调用消息的的处理方法。命令角色:Message,消息类

2013-01-14 00:42:11 4365

原创 android多线程三(Message,MessageQueue)

Message 定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。Message类是个final类,就是说不能被继承,同时Message类实现了Pa

2013-01-14 00:39:03 1512

原创 android多线程二(消息模型)

在之前的一篇文章中有一段Handler小结。大概介绍了Handler和Looper的关系,并且实例了一个Thread中添加Looper的实例,最后给出了替代方案HandlerThread 。Android要建立一个消息系统使用了Looper,MessageQueue,Handler等概念,这些都是概念包装,本质的东西就是消息队列中消息的分发路径的和消息分发处理方式的设计。在Andr

2013-01-12 19:00:03 1039

转载 Android多线程一(AsyncTask实现原理)

有空的可以先看看这篇,Android组件与进程,进程的优先级,组件都在主线程,线程安全等。提到android的多线程,必须提下特有的异步task类,AsyncTask。AsyncTask 的优势体现在:线程无法管理,匿名线程创建并启动后就不受程序的控制了,如果有很多个请求发送,那么就会启动非常多的线程,系统将不堪重负。代码更简洁,实现起来更方便。AsyncTas

2013-01-09 14:28:30 7525

原创 ViewTreeObserver

api的概述:A view tree observer is used to register listeners that can be notified of global changes in the view tree. Such global events include, but are not limited to, layout of the whole tree, begin

2013-01-08 12:38:17 8191

原创 LayoutAnimationController

layoutanimation,顾名思义,是用来设置给viewgroup类型的animation,是子view来执行的。可以是android:layoutAnimation="@anim/popinlayout" 也可以是javacode的viewgroup.setLayoutAnimation(layoutnaimationcontroller);和Animation

2013-01-08 00:36:51 3645

原创 Thread详解四(线程池)

线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorService。下面这张图完整描述了线程池的类体系结构。

2012-12-05 04:43:45 1676

原创 Thread详解三(高性能的同步)

1,java.util.concurrent.locksLock对象的作用和隐形锁synchronized作用类似。也是同一时间只能有一个线程获取锁。Lock对象同样支持wait/notify机制,它是通过Condition对象。Lock和隐形锁比较最大的好处在于可以再尝试获取一个锁的时候即时返回,tryLock方法。如果其他线程在获取锁之前发出了interrupt,lockInterru

2012-12-04 14:03:42 770

原创 Thread详解二(互斥和协作)

Java Monitor 从两个方面来支持线程之间的同步,即:互斥执行与协作。 Java 使用对象锁 ( 使用 synchronized 获得对象锁 ) 保证工作在共享的数据集上的线程互斥执行 , 使用 notify/notifyAll/wait 方法来协同不同线程之间的工作。这些方法在 Object 类上被定义,会被所有的 Java 对象自动继承。实质上,Java 的 Object 类本身就

2012-12-02 03:28:44 1264

原创 Thread详解一(interrupt)

1,在定义Thread的时候选择实现Runnable接口比继承Thead更灵活,因为java是单继承的嘛。2,setPriority()方法改变其优先权。3,setDaemon()方法讲线程设置为后台线程。该方法需要在start()方法之前调用。4,线程的状态(Thread.State,可以通过getState方法获得):1)、新状态:线程对象已经创建,还没有在其上调用start(

2012-12-02 01:34:36 4497

原创 MVC范型等

MVC是用于拆分GUI应用程序代码的逻辑方法。可以帮助确保实现最大的可重用性。模型保持应用程序数据的类。视图窗口,空间和其他用户可以看到并能与之交互的元素。控制器将模型和视图绑定在一起,确定如何处理用户输入的应用程序逻辑。复合模式模型使用观察者模式,以便观察者更新,同时保持两者之间解耦。控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为。视

2012-11-19 20:39:33 914

原创 android定位二(百度定位SDK)

核心类LocationClient类用来发起定位,添加取消监听LocationClientOption类用来设置定位方式,包括是否启用缓存,使用gps,时间间隔等。BDLocation类定位结果的封装,包含坐标和错误码等信息。BDLocationListener接口类获取定位结果BDNotifyListener 类作用:位置提醒接口类,用于设

2012-11-16 14:33:58 12059 1

原创 android定位

先说说手机定位的方式1,GPS 绝大部分手机都有GPS模块,这种方式准确度是最高的,但是缺点也很明显,1,耗电高;2,绝大部分用户默认不开启GPS模块。3,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间;4,室内无法使用。需要指出的是,GPS走的是卫星通信的通道,在没有网络连接的情况下也能用。2,Network方式,基站和wifi定位。这两个方式类似,都是通过采集手机上的基站I

2012-11-15 19:15:41 3299 1

转载 Appdelegate委托

Cocoa Touch广泛使用委托(delegate),它是负责为其他对象处理特定任务的类。通过应用程序委托,我们能够在某些预定义时间内为UIApplication做一些工作。每个IOS应用都有且只有一个UIApplication实例,它负责应用程序的运行循环。AppDelegate是类似于android的Application的作用,提供一些应用程序级别的状态的回调,还可以定义一些全

2012-11-13 10:08:58 7673 1

原创 Objective-C基础教程十

许多人将键/值编码亲切地成为KVC,它是一种间接更改对象状态的方式,其实现方法是使用字符串描述要更改的对象状态部分。基本调用包括-valueForKey:和-setValue:forKey:。以字符串的形式向对象发送消息,这个字符串是我们关注的属性的关键。因此,我们可以请求car的名称:NSString *name = [car valueForKey: @"name"]);val

2012-10-29 19:16:12 810

原创 Objective-C基础教程九

Cocoa提供了两个通用的文件处理类:属性列表和对象编码。在Cocoa中,有一类名为属性列表的对象,常简写为plist。这些列表包含Cocoa知道如何操作的一组对象。具体来讲,Cocoa知道如何将它们保存到文件中并进行加载。属性列表包括NSArray,NSDictionary,NSString,NSNumber,NSData,以及NSDate,以及它们的变体。NSDate。Cocoa中用于

2012-10-28 17:22:16 664

原创 Objective-C基础教程八

Category为我们提供了区别于继承的另外一种方法来对类进行扩展。我们可以向任何已有的类添加成员函数来实现功能上的扩展(注:category只允许添加成员函数,不能添加数据成员),添加的函数可以访问类中所有的数据成员,该类的子类也将继承新添加的成员函数。声明category@interface 需要扩展的类(category名称)//需要添加的函数@end实现ca

2012-10-27 12:21:22 931

原创 Objective-C基础教程七

@property是一种新的编译器功能,表示声明了一个新对象的属性。这个预编译指定的作用是自动声明属性的setter和getter方法。@synthesize也是一种新的编译器功能,表示“创建该属性的访问器”,代替getter和setter方法的具体实现。这两个特性可以让我们少敲点代码点表达式 obj.a和[obj a]作用一致。和java中的用对象访问public变量一样

2012-10-26 19:29:38 631

原创 Objective-C基础教程六(对象初始化)

1.分配对象分配(allocation)是一个新对象诞生的过程。最美好的时刻,是从操作系统获得一块内存并将其指定为存放对象的实例变量的位置。向某个类发送alloc消息的结果,就是为该类分配一块足够大的内存,以存放该类的全部实例变量。一个刚刚分配的对象并不能立即使用,需要先初始化该对象,然后才能使用它。像java构造函数中执行分配和初始化全套。2,初始化对象初始化(initi

2012-10-26 18:20:41 638

原创 Objective-C基础教程五(内存管理)

内存管理是程序设计中最常见的资源管理的一部分1,对象的生命周期:对象的生命周期包括诞生(通过alloc或new方法实现),生存(接收消息和执行操作),交友(借助方法的组合和参数)以及当他们的声明结束时最终死去(被释放)。当对象的生命周期结束时,他们的原材料(内存)将被回收以供新的对象使用。1.1引用计数Cocoa采用了一种称为引用计数(reference count

2012-10-24 17:35:12 741

原创 Objective-C基础教程四(Foundation Kit)

1,Cocoa是由两个不同的框架组成的:Foundation Kit和Application Kit。后者包含了所有的用户接口对象和高级类。Cocoa Foundation框架中包含了很多有用的,面向数据的低级类和数据类型。2,一些有用的数据类型typedef struct _NSRange{unsigned int location;unsigned int leng

2012-10-23 18:00:53 819

原创 Objective-C基础教程三

1,Objective-C类的源代码被分成了两部分,接口interface和实现implementation。前者.h文件中一般有@interface指令,公共struct定义,enum常量,#defines和extern全局变量等。后者.m文件是所有实现细节(如类的implementation指令,全局变量的定义,私有struct等)。2,导入头文件有两种不同的方法:使用引号或者使用

2012-10-22 14:12:26 1803

原创 Objective-C基础教程2(继承和复合)

继承是is a XX,复合是 has a XX,在复合中,对象可以引用其他对象。1,继承语法下面是用于声明新类的语法:@interface Circle : NSObject冒号后的标识符是需要继承的类。在Objective-C中,可以从非类中继承对象(非类是?TODO),但如果使用Cocoa,会希望从NSObject继承对象,因为NSObject提供了大量有用的特性,包括

2012-10-22 04:28:12 943

原创 Objective-C基础教程一

1,#importObjective-C使用头文件来包含元素声明,这些元素包含结构体,符号常量,函数原型等。和C语言的#include差不多。#import是GCC编译器提供的,Xcode在编译Objective-C,C和C++程序时都会使用它。#import可保证头文件只被包含一次,而不论此命令实际上在哪个文件中出现多少次。ps,在C语言中,程序员通常使用基于#ifdef命令的方案来

2012-10-22 00:05:34 934

原创 Oauth简介

OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。二、OAUTH简

2012-03-27 22:51:56 1113

原创 ListView特效1

public class TwoHeaderListView extends FrameLayout{ private static final String TAG = "TwoHeaderListView"; ImageView header1; ImageView header2; ListView listview; ImageView fixheader; p

2012-03-26 07:49:00 1789 1

转载 Tasks and Back Stack

大多数操作系统,在应用程序所寄存的可执行程序映像(如Windows系统里的.exe)、它所运行的进程以及和用户交互的图标和应用之间有一种严格的1对1关系。在Android系统里,这些关联要松散得多。并且重要的是要理解各种概念怎么样组成整体,这个主要是android的Mash-Up的思想。所谓Mash-Up,就是把写应用搞成搭积木,要出效果的时候,东家一块西家一块现场拼起来就好。这里面关键有两点,一

2012-03-04 21:51:03 654

转载 Process and Thread 进程和线程

http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html当一个应用程序组件开启,而该应用程序没有其他组件在运行,那么Android系统会为这个应用程序启动一个新的Linux进程,一个单独线程来执行这些操作。一般来说,一个应用程序中的所有组件应该是跑在同一个进程和线程(主线程,called

2012-02-29 02:46:28 1501

Amazed开源项目工程

Amazed开源项目工程,资源http://code.google.com/p/apps-for-android/

2011-10-10

空空如也

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

TA关注的人

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