摘要:
上面的文章我们演示了如何把一个Message由子线程发送给主线程,但是如何将一个Message从主线程发送给子线程呢?子线程在默认的情况下是没有Looper的,也就没有可能操作子线程的消息队列。我们通过查API文档可以看到:Class used to run a message loop for a thread. Threads by default do not have a message loop associated with them; to create one, call prepare() in the thread that is to run the loop, and 阅读全文
随笔档案-2011年12月
Android的消息机制(3)
2011-12-30 11:46 by tang768168, 171 阅读, 收藏,
摘要:
当然我们也可以隐式的指定Looper ,代码如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112/** * MessageQueue2.java * com.test * * Functio 阅读全文
Android的消息机制(2)
2011-12-30 11:45 by tang768168, 181 阅读, 收藏,
摘要:
上一节中,是主线程自己发了一个消息到自己的Message Queue中,并把消息从队列中提取出来。那么如何由别的线程发送消息给主线程的Message Queue中呢? 直接看代码~~12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510 阅读全文
Android的消息机制(1)
2011-12-30 11:31 by tang768168, 228 阅读, 收藏,
摘要:
在Android主线程启动时,就会执行Looper对象的消息圈(Message Loop)去监视该线程中的消息队列(Message Queue),当Message Queue中有消息,主线程就会取出此消息,然后处理之。注意:此Looper对象和消息队列对象都是此线程专属的,各只有一个,自己线程的Looper 只监视自己线程的MQ,而Handler对象可以有多个。但是我们自己生成的子线程并不会自动建立Looper对象,但是可以创建Looper对象以及一个Message Queue数据结构。123456789101112131415161718192021222324252627282930313 阅读全文
Android线程 Handler Message Queue AsyncTask详细介绍
2011-12-14 17:39 by tang768168, 560 阅读, 收藏,
摘要:
android线程 Handler Message Queue AsyncTask线程模型 线程交互 + 修改Button样式 示例 最终easy整合版 首先原谅我把文章的标题写的这么长。其实我还嫌弃它短了因为 写不下去了所以我就不写了。因为我实在不知道该怎么定义这篇文章的标题或许应该叫 “乱谈”比较合适。 这样可能还体现了 大道至简的 精髓 呵呵。 希望和我一样正在学习android的新手可以通过这篇文章熟悉android线程的交互,以及使用方法。以便将来更好的在自己的程序中运用。也希望大家 保持学习android的积极性,一起努力、交流、成长,因为文章比较长 大家可以分几次阅读。... 阅读全文
View编程(7): 自定义View_03
2011-12-14 16:41 by tang768168, 240 阅读, 收藏,
摘要:
根据android的api demo中提供的例子,自己尝试写一个自定义View,算是做个复习。这篇博客是建立在View编程(5): 自定义View_01_ApiDemo源码研究、View编程(6): 自定义View_02_ApiDemo源码研究基础之上。以上两篇博客是对某些知识点的原理性分析,该篇也算是一个小结,没有什么原理可说。好嘞,废话到此为止。1. 自定义ViewMyView.java源码packagemark.zhang;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics. 阅读全文
View编程(6): 自定义View_02_ApiDemo源码研究
2011-12-14 16:38 by tang768168, 285 阅读, 收藏,
摘要:
阅读这篇博客之前,假设你已经研究了View编程(5): 自定义View_01_ApiDemo源码研究提供的实例。当时,很奇怪为什么会出现这样的log:(在手机上测试结果,不是在模拟器上。)D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/ 阅读全文
2011 最佳的 Linux 发行版
2011-12-14 16:12 by tang768168, 278 阅读, 收藏,
摘要:
一直很喜欢ubuntu,但是还有其它linux发行版也很不错。看看2011年最佳的 Linux 发行版吧!以下来自:http://www.oschina.net/news/20533/the-2011-top-7-best-linux-distributions-for-you?from=201108141. 最佳的 Linux 桌面发行版 —— Fedora Linux在过去几年一直都是 Ubuntu 和其衍生版本占据 Linux 桌面的头把交椅,但自从 Ubuntu 11.04 发布之后饱受诟病以及 Fedora 15 的发布,使得 Fedora 在今年拔得头筹。2. 最适合笔记本的 Li 阅读全文
View编程(5): 自定义View_01_ApiDemo源码研究
2011-12-14 16:06 by tang768168, 288 阅读, 收藏,
摘要:
android提供的APIDemo中,在/res/values下面有个attrs.xml文件。其内容如下:<?xmlversion="1.0"encoding="utf-8"?><!--Copyright(C)2007TheAndroidOpenSourceProjectLicensedundertheApacheLicense,Version2.0(the"License");youmaynotusethisfileexceptincompliancewiththeLicense.Youmayobtainacopy 阅读全文
View编程(4): Template method
2011-12-14 16:02 by tang768168, 178 阅读, 收藏,
摘要:
说重点之前,给大家推荐一篇文章,算是对View绘图的一个小例子。publicclassAndroidTestextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);MyViewmv=newMyView(this);setContentView(mv);}publicclassMyViewextendsView{MyView(Contextcontext){super(context);}@OverrideprotectedvoidonDraw 阅读全文
Handler应用: Activity 之间通过 Handler 通信
2011-12-14 15:42 by tang768168, 4392 阅读, 收藏,
摘要:
假设你已经明白下面的内容,那么这篇博客很适合您!<1> Application 的作用及用法<2> Activity、Task 以及 Application 之间的关系<3> Handler 的用法真的很感谢anhenzhufeng 这位 CSDN 好友,如果不是他的虚心和认真,恐怕这篇文章难以问世!再次感谢他在我的博客http://blog.csdn.net/androidbluetooth/article/details/6384641#reply的提问,这篇文章送给他以及有需要的朋友们。希望这篇博客能够帮到您!读这篇博客之前,我们看看 anhenzhu 阅读全文
View编程(3): invalidate()源码分析
2011-12-14 15:32 by tang768168, 454 阅读, 收藏,
摘要:
View编程(2): invalidate()再探博客中,说了加载View的onDraw()方法的时机以及invalidate()方法的作用。事实上,远远没有您想象的那么简单。为了写好这篇博客,还是拿例子说事吧。packagemark.zhang;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.graphics.RectF;importandroid.os.Bundle;importa 阅读全文
View编程(2): invalidate()再探,实现UI程序的更新
2011-12-14 15:14 by tang768168, 310 阅读, 收藏,
摘要:
博客Android(四) :更新UI的方法中提到invalidate()方法,但是由于自己的阅历不足,没有过多的说明,只是泛泛而谈!本篇继续探究这个诡异的方法。在阅读本篇博客之前,建议您先看看View编程(1): Window、View与setContentView()基于Android(四) :更新UI的方法中的例子,稍作修改:packagemark.zhang;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Paint; 阅读全文
Handler介绍:更新UI程序的方法
2011-12-14 15:02 by tang768168, 252 阅读, 收藏,
摘要:
总是感觉 android 中 UI 更新很让人纠结!自己小结一下,算是抛砖引玉。读这篇文章之前,假设你已经明白线程、Handler 的使用。在文章的最后,附录一张草图,主要用于说明 Handler、Message、MessageQueue、Looper 之间的关系。1. 在 onCreate() 方法中开启线程更新 UIview plainprint?publicclassMasterActivityextendsActivity{TextViewtv=null;Buttonbtn=null;@OverridepublicvoidonCreate(BundlesavedInstanceStat 阅读全文
LayoutInflater基础介绍
2011-12-14 14:39 by tang768168, 311 阅读, 收藏,
摘要:
LayoutInflater 在 android 开发中使用频率较高,今天谈谈! 该类是一个抽象类,在文档中如下声明:publicabstractclassLayoutInflaterextendsObject1. 获得 LayoutInflater 实例 三种方法可以获得该实例对象,方法如下:a.LayoutInflaterinflater=getLayoutInflater();b.LayoutInflaterlocalinflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);c.L 阅读全文
View编程(1): Window、View与setContentView()
2011-12-14 14:36 by tang768168, 392 阅读, 收藏,
摘要:
只要你使用过Activity,那么你一定使用过setContentView这个方法。一般都是这样调用该方法:setContentView(R.layout.main);然后,在手机或者模拟器上就可以看见自己的布局。如果,你留意的话,setContentView还有很多过载方法:publicvoidsetContentView(intlayoutResID){getWindow().setContentView(layoutResID);}publicvoidsetContentView(Viewview){getWindow().setContentView(view);}publicvoid 阅读全文
Linux(Ubuntu)下各种常用命令(个人总结)
2011-12-01 11:20 by tang768168, 385 阅读, 收藏,
摘要:
------------------------linux常用操作命令------------------------------------------------------注:命令之前加上sudo代表使用root权限操作(root为最高级别的权限所有者)cat /proc/cpuinfo --- 查询Linux操作系统的基本信息(例如硬件和软件信息)uname -m --- 查询当前Linux操作系统是多少位的操作系统uname --help --- uname帮助clear --- 清空终端上的内容cd mr1 --- 进入某一个文件夹(例如进入mr1可以使用cd ... 阅读全文
Android中Launcher2开发代码概述
2011-12-01 11:06 by tang768168, 478 阅读, 收藏,
摘要:
一、主要文件和类1.Launcher.java:launcher中主要的activity。2.DragLayer.java:launcher layout的rootview。DragLayer实际上也是一个抽象的界面,用来处理拖动和对事件进行初步处理然后按情况分发下去,角色是一个controller。它 首先用onInterceptTouchEvent(MotionEvent)来拦截所有的touch事件,如果是长按item拖动的话不把事件传下去, 直接交由onTouchEvent()处理,这样就可以实现item的移动了,如果不是拖动item的话就把事件传到目标view,交有目标view的事 件 阅读全文
Android启动Launcher过程
2011-12-01 11:03 by tang768168, 288 阅读, 收藏,
摘要:
一LauncherApplication->onCreate 1.//设置最小堆内存4M 2.//建立应用图标缓存器 3.//建立LauncherModel 4.//注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件监听器 LauncherModel作为广播接收器对上面3中事件进行监听 5.//添加对桌面favorites content provider 数据变化监听器 二Launcher->onCreate 1.获取LauncherApplic.. 阅读全文
AndroidManifest.xml描述文件概述
2011-12-01 10:57 by tang768168, 444 阅读, 收藏,
摘要:
从网上搜来的http://blog.chinaunix.net/u/24632/showart_2320672.html好东西在这里完整的COPY下来留着现在看今天开始launcher2分析系列,Launcher2的代码路径为: packages/apps/Launcher2项目构成:AndroidManifest.xml 项目Launcher2的描述文件CleanSpec.mk android项目授权文件?-->我的没有NOTICE apache授权协议Android.mk Launcher2编译的makefileMODULE_LIC... 阅读全文
launcher.xml文件概述
2011-12-01 10:55 by tang768168, 448 阅读, 收藏,
摘要:
好吧,现在我们来看res目录里的布局文件,布局文件都放在layout*目录里。本以为launcher的layout都放在layout目录里,由于屏幕放置方式的不同会对桌面造成一定的影响,所以google的 android项目组就决定因地制宜。比如当你横着放置屏幕的时候就会使用layout-land目录里的文件来对系统launcher进行布局,竖着屏 幕的时候会使用layout-port内的布局文件来对launcher来布局。横竖屏幕切换之际,会重新进行布局。那我们就以layout-land目录为例来看吧。layout-land/launcuer.xml 1 <?xml version=& 阅读全文
浙公网安备 33010602011771号