
Android ApiDemo实例解析
文章平均质量分 72
逐个分析Android ApiDemos中的实例并介绍相关知识
引路蜂
这个作者很懒,什么都没留下…
展开
-
Android 程序清单文件详解
每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。Android系统需要这些信息才能正常运行该应用。Android程序清单文件主要具有下面作用:· 它给应用程序Java包命名,这个包名作为应用程序唯一标识符。·原创 2013-04-07 22:05:49 · 21476 阅读 · 3 评论 -
Android Permission详解
Android系统构造在Linux系统之上,因此它采用了和Linux类型的权限隔离机制,也就是说,每个应用使用独立的系统标识(组标识加用户标识)来运行。部分系统应用也使用某个系统标识独立开来。底层的Liunx系统从而使得不同应用之间以及应用和系统之间隔离开来。Android通过Permission(权限)机制进一步强化系统安全,通过Permssion来限制某个进程可以执行的操作,为访问某些特定的数原创 2013-04-07 08:47:46 · 13151 阅读 · 0 评论 -
Android 进程和线程详解
当启动一个应用程序组件时,如果该应用没有正在运行的其它程序组件,那么Android系统将为这个应用创建一个新进程(包含一个线程)用于运行应用。缺省情况下,一个应用的所有组件(Activity,Service等)运行在同一个进程和线程中(称为“主”线程)。如果在启动一个应用程序组件时,这个应用已经有进程在运行(因为有应用的其它组件存在),那么这个应用程序组件将使用同一进程和线程运行。当然你可以使用不原创 2013-03-24 08:22:18 · 7513 阅读 · 2 评论 -
Android Intents和Intent Filters详解
Android应用中的三个核心组件:Activities,Services和broadcastreceivers都是通过称为“Intent”的消息来激活的。Android应用一个特点是“低耦合”,各个Activities,Services和broadcastreceivers相当独立,可以看成是一个个“迷你应用”,而Intent是这些“迷你应用”的粘合剂,Intent不但可以用于同一个Applic原创 2013-03-23 14:53:14 · 5064 阅读 · 1 评论 -
Android Service 详解
一个Service也是一种应用程序组件,它运行在后台以提供某种服务,通常不具有可见的用户界面。其它的应用程序组件可以启动一个Service,即使在用户切换到另外一个应用程序后,这个Service还是一直会在后台运行。此外,一个应用程序也可以绑定到一个Service然后使用进程间通信(IPC)方式与Service之间发生交互。例如一个Service可以处理网络事物,播放音乐,读写文件或者读写Cont原创 2013-03-23 10:08:15 · 7396 阅读 · 4 评论 -
Android Activity 详解
Activity为Android应用程序的一个关键组成部分,它通常提供一个用户界面用来和用户交互以完成某个功能,比如拨号,拍照,发送电子邮件或者是浏览地图, 在移动设备上,Activity通常占据整个屏幕,但Android也支持部分屏幕或是浮动窗口。一个Android应用通常由多个Activity构成,不同Activity之间采用低耦合度设计,其中某个Activity可以称为应用的“主Activi原创 2013-03-23 09:59:16 · 4190 阅读 · 1 评论 -
Android ApiDemos示例解析(205):Graphics->OpenGL ES->Translucent GLSurfaceView
本例介绍使用透明背景绘制OpenGL 图形。步骤如下:1. 对于Activity使用透明主题android:label=”Graphics/OpenGL ES/Translucent GLSurfaceView” android:theme=”@style/Theme.Translucent”android:configChanges=”keyboardHidden|orie原创 2012-12-12 08:26:46 · 4989 阅读 · 0 评论 -
Android ApiDemos示例解析(204):Graphics->OpenGL ES->Frame Buffer Object
Frame Buffer 对象的概念可以参见前面文章Android OpenGL ES 开发教程(23):FrameBuffer。简单的和2D图像类比,Frame Buffer 如果 对应到二维图形环境中,就是一个2D的内存数组空间,缺省情况为屏幕的显存,也可以创建Offscreen 内存空间,此时Frame Buffer 可以是一个二维数组,数组每个元素代表一个像素颜色。对于三维图形来说原创 2012-12-10 21:34:52 · 3272 阅读 · 1 评论 -
Android ApiDemos示例解析(203):Graphics->OpenGL ES->GLSurfaceView
这个例子是使用OpenGL ES绘图最简单的例子,说明如何使用GLSerfaceView,前面的例子Android OpenGL ES 开发教程(6):GLSurfaceView 已经详细说明了,本篇不再具体描述。几何图形顶点定义参见Android OpenGL ES 开发教程(8):基本几何图形定义,颜色定义参见Android OpenGL ES 开发教程(20):颜色Color。本例对原创 2012-12-06 23:00:32 · 3149 阅读 · 3 评论 -
Android ApiDemos示例解析(202):Graphics->OpenGL ES->Cube Map
Cube Map,中文可以翻译成立方环境映射,下面是摘自维基百科的说明:立方反射映射是用立方映射使得物体看起来如同在反射周围环境的一项技术。通常,这通常使用户外渲染中使用的 skybox 完成。尽管由于反射物周围的物体无法在结果中看到,所以这并不是一个真正的反射,但是通常仍然可以达到所期望的效果。通过确定观察物体的向量就可以进行立方映射反射,照相机光线在照相机向量与物体相交的位置按照曲面法原创 2012-11-08 21:34:42 · 4483 阅读 · 2 评论 -
Android ApiDemos示例解析(201):Graphics->OpenGL ES->Compressed Texture
本例和上例Android ApiDemos示例解析(200):Graphics->OpenGL ES->Textured Triangle 非常类似,所不同的是调用图像(Texture)的方法不同。本例介绍如何使用ETC1 压缩格式的图像,一种方式是从资源文件中读取ETC1格式的图像作为三角形的材质(本例使用res.raw 中的androids.pkm文件),一种是通过代码动态创建ETC1格式原创 2012-11-08 21:30:56 · 3306 阅读 · 3 评论 -
Android ApiDemos示例解析(200):Graphics->OpenGL ES->Textured Triangle
前面介绍Android ApiDemos 跳过了其中与OpenGL 相关的例子,而是专为OpenGL编程写了教程。 这里将接着补上Android ApiDemos中有关OpenGL ES的例子的解析。Textured Triangle 主要介绍了如何为图形添加材质。其具体步骤可以参见Android OpenGL ES 简明开发教程七:材质渲染。本例对应的Activity为T原创 2012-11-02 11:32:23 · 3895 阅读 · 0 评论 -
Android ApiDemos示例解析:总结
Android ApiDemos示例解析(199):总结前面基本介绍完Android ApiDemos中除与OpenGL ES相关的所有示例,ApiDemo详细介绍了Android平台主要API,分成了AppContentGraphicsMediaOSTextViews几个大类,每个大类又分为几个小类,一共大约有200多个实例,涵盖了Android OS API的各个方面,下面是所有示例的列表:A原创 2012-11-02 11:01:34 · 9568 阅读 · 11 评论 -
Android ApiDemos示例解析(198):Views->WebView
本例介绍了WebView的最简单的用法,显示HTML 链接, 其实WebView的功能远不止如此,你基本上可以使用WebView实现你自己的浏览器。WebView内部使用了WebKit 实现网页的前翻和后退,放大,缩小,网页搜索等,如果要打开内置的缩放控制,可以调用WebSettings.setBuiltInZoomControls(boolean)。此外,如果WebView需要访原创 2012-11-02 10:04:53 · 3287 阅读 · 1 评论 -
Android ApiDemos示例解析(196):Views->TextSwitcher
本例介绍TextSwitcher 的用法,我们在前面介绍过ImageSwitcher的用法Android ApiDemos示例解析(124):Views->ImageSwitcher ,ImageSwitcher 和TextViewSwitcher都是ViewSwitcher 的子类,ViewSwitcher又是ViewAnimator 的子类,ViewAnimator (FrameLayou原创 2012-10-31 08:25:18 · 4371 阅读 · 0 评论 -
Android ApiDemos示例解析(195):Views->Tabs->Content By Intent
本例使用可以启动其它Activity的Intent作为Tab页面的内容Content.本例中使用的三个Activity分别为List1, List8, Control2 ,可以参见Android ApiDemos示例解析(168):Views->Lists->1. Array ,Android ApiDemos示例解析(175):Views->Lists->8. Photos 和Andro原创 2012-10-21 11:27:35 · 3303 阅读 · 1 评论 -
Android ApiDemos示例解析(194):Views->Tabs->Content By Factory
本例使用TabHost.TabContentFactory 动态为Tab页面创建Content,使用TabHost.TabContentFactory可以按需(用户选择某个页面后)动态创建Tab页面内容。方法是使用TabActivity实现TabHost.TabContentFactory接口并实现createTabContent方法:public class Tabs2 exte原创 2012-10-18 08:17:21 · 3038 阅读 · 3 评论 -
Android ApiDemos示例解析(193):Views->Tabs->Content By Id
本例介绍TabActivity ,在Android新版本不建议使用TabActivity,而是使用Fragment。 TabActivity 提供了分页控件(Tab Control),关键的一个类为TabHost,TabHost 为TabActivity的View,可以通过getTabHost()取得TabActivity 对应的TabHost.TabHost 可以通过TabHost.Ta原创 2012-10-17 11:26:49 · 2842 阅读 · 0 评论 -
Android ApiDemos示例解析(192):Views->Spinner
Spinner为下拉框,为AdapterView的子类。AdapterView的显示可以通过数据绑定来实现,数据源可以是数组或是数据库记录,数据源和AdapterView是通过Adapter作为桥梁。通过Adapter,AdatperView可以显示数据源或处理用户选取事件,如:选择列表中某项。本例Adapter 使用的是ArrayAdapter,可以参见Android ApiDe原创 2012-10-16 08:24:20 · 3278 阅读 · 0 评论 -
Android ApiDemos示例解析(191):Views->Seek Bar
SeekBar 为ProgressBar 的子类,和ProgressBar 不同的是,SeekBar添加了一个可以拖动的滑块,用户可以按住滑块左右移动,为SeekBar设置当前的值,因此最好不要在SeekBar左右放置可以获取焦点的其它控件。本例介绍了SeekBar的基本用法和支持的事件SeekBar.OnSeekBarChangeListenerpublic void onPro原创 2012-10-15 13:19:50 · 3057 阅读 · 0 评论 -
Android ApiDemos示例解析(190):Views->ScrollBars->3. Style
本例介绍了ScrollView 的几种风格,android:scrollbarStyle 用来定义滚动条的风格和位置,滚动条位置可以为”overlaid”或是”inset”,当使用”inset” 风格时,滚动条添加到View的Padding区域。滚动条可以显示在View的Padding区域内或是在View的边缘。scrollbarStyle 有如下几种风格:insideOver原创 2012-10-13 22:47:25 · 2444 阅读 · 0 评论 -
Android ApiDemos示例解析(189):Views->ScrollBars->2.Fancy
ScrollView 的滚动条背景和滑块可以定制,本例使用drawable 为ScrollView定制了滚动条和滑块,滚动条宽度设为12dip ,滑块为蓝色等android:layout_width=”match_parent”android:layout_height=”wrap_content”android:scrollbarTrackVertical=”@drawabl原创 2012-10-12 16:27:45 · 2109 阅读 · 0 评论 -
Android ApiDemos示例解析(188):Views->ScrollBars->1.Basic
本例介绍了ScrollView 的基本用法,ScrollView 允许用户滚动屏幕以显示大于屏幕的内容,ScrollView 为FrameLayout的子类,因此一般只在ScrollView显示一个子Layout,通常使用方向为垂直方向的LinearLayout作为ScrollView的子View。 ScrollView只支持垂直滚动。在介绍Layout时已经有不少关于ScrollView原创 2012-10-12 08:37:59 · 2163 阅读 · 0 评论 -
Android ApiDemos示例解析(187):Views->Rating Bar
本例介绍了RatingBar 的用法,RatingBar为SeekBar和ProgressBar的子类,使用五角星来显同示评分。缺省大小的RatingBar 用户可以通过方向键或是touch/drag 来改变评分值,而另外两种风格 ratingBarStyleSmall 和 ratingBarStyleLarge 一般不支持用户交互,通常用来显示评分结果。setNumStarts 可以设置原创 2012-10-09 15:15:10 · 3485 阅读 · 1 评论 -
Android ApiDemos示例解析(186):Views->Radio Group
RadioGroup 用来管理一组Radio Button,RadioButton 为单选钮,同一组中的RadioButton只能有一个选中。前面的例子有Android ApiDemos示例解析(107):Views->Controls->1. Light Theme。使用RadioGroup非常简单,在XML中,将RadioGroup作为RadioButton的Container即可原创 2012-10-09 15:13:40 · 2576 阅读 · 0 评论 -
Android ApiDemos示例解析(185):Views->Progress Bar->4. In Title Bar
在Progress Bar->1. Incremental 的固定链接" rel="bookmark" href="http://www.imobilebbs.com/wordpress/?p=2313" style="padding:0px; border:0px; margin:0px; font:inherit; vertical-align:baseline; color:rgb(0,13原创 2012-10-08 08:22:02 · 2367 阅读 · 0 评论 -
Android ApiDemos示例解析(184):Views->Progress Bar->3. Dialogs
本例介绍使用ProgressDialog 的用法,我们之前也在Dialog中简单介绍过ProgressDialog ,参见Android ApiDemos示例解析(22):App->DialogProgressDialog为AlertDialog的子类,ProgressDialog 无需通过AlertDialog.Builder 构造,可以直接通过构造函数来创建ProgressDial原创 2012-10-05 08:39:21 · 2507 阅读 · 0 评论 -
Android ApiDemos示例解析(183):Views->Progress Bar->2. Smooth
本例介绍了ProgressBar 采用”indeterminate” 模式上几种不同的风格,在progressbar_2.xml 中添加一个使用水平滚动条的”indeterminate” 模式。android:orientation=”vertical”android:layout_width=”match_parent”android:layout_height=”wrap_原创 2012-10-04 09:35:11 · 2931 阅读 · 1 评论 -
Android ApiDemos示例解析(182):Views->Progress Bar->1. Incremental
进程条ProgressBar可以用来显示某个操作(比如下载文件)当前的进度,应用可以根据操作的进度改变进程条的长度。Android 中的进程条还支持一个辅助的进度条来显示莫个中间操作的进度,比如说解压一个文件包,主进度条可以显示整个文件包的解压进度,辅助进度条可以显示当前正在解压的文件的进度。对于一些无法事先知道操作所需时间,可以将ProgressBar 设置成”indeterminate原创 2012-10-03 08:13:53 · 2320 阅读 · 0 评论 -
Android ApiDemos示例解析(181):Views->Lists->14.Efficient Adapter
上例使用临时数据来绑定列表项解决那些载入费时的列表项在列表滚动时的性能问题,本例介绍如果编写一个高效的List Adapter ,其实也不是什么特别的技术,主要是:重用getView 传入参数convertView ,避免多次从XML中展开View。设计了一个ViewHolder,用来存放一个TextView 和ImageView,避免每次都调用findViewById。说原创 2012-10-02 10:48:01 · 2059 阅读 · 2 评论 -
Android ApiDemos示例解析(180):Views->Lists->13. Slow Adapter
对于一个长列表,如果每个列表项载入比较费时( 比如从网络下载图像),如果此时需要快速滚动列表,可以先给列表项使用一个替代名称或是其它可以快速载入的项,当列表停止滚动时再载入实际的列表项,这样可以大大提高列表的响应性能。本例在ListView中显示一个字符串数组来模拟一个费时的列表项载入(尽管显示文字列表项实际上很快),当列表开始滚动或是快速飞行时,使用一个临时数据来绑定列表项(如Loadi原创 2012-09-30 09:20:03 · 2482 阅读 · 1 评论 -
Android ApiDemos示例解析(179):Views->Lists->12. Transcript
本例使用一个ListView 和一个TextView 实现了一个类似便笺簿功能,在TextView中输入,然后在ListView中显示,使用ArrayAdapter, 字符串存储使用ArrayList.private ArrayAdapter mAdapter;private ArrayList mStrings = new ArrayList();...mAdapter = new原创 2012-09-28 20:01:15 · 2347 阅读 · 0 评论 -
Android ApiDemos示例解析(178):Views->Lists->11. Multiple choice list
本例为列表设置多选模式:listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);原创 2012-09-28 19:59:52 · 2021 阅读 · 0 评论 -
Android ApiDemos示例解析(177):Views->Lists->10. Single choice list
在介绍Dialog 时Android ApiDemos示例解析(22):App->Dialog 介绍了使用对话框来显示单选,多选框,ListView 可以通过setChoiceMode 为列表设置单选或是多选。本例使用单选模式:listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);原创 2012-09-28 19:57:24 · 3303 阅读 · 0 评论 -
Android ApiDemos示例解析(176):Views->Lists->9. Array (Overlay)
本例和前面例子Android ApiDemos示例解析(168):Views->Lists->1. Array 非常类似,显示一个Cheese数组,列表是按字母顺序排列的。对于长例表,在滚动时可以在屏幕上显示当前显示列表项的首字母以便于用户在列表中搜索。本例是通过在屏幕中央显示一个文本框来实现的,通过WindowManager 为ListActivity缺省的窗口动态添加这个TextV原创 2012-09-26 08:24:55 · 2625 阅读 · 0 评论 -
Android ApiDemos示例解析(175):Views->Lists->8. Photos
本例也使用了自定义ListActivity的Layout,参见上例,同时也使用了自定义的ListAdapter (PhotoAdapter) ,其getView 返回一个ImageView ,参见Android ApiDemos示例解析(119):Views->Gallery->1. Photos注意本例R.layout.list_8.xml 中将ListView 和一个TextVie原创 2012-09-25 08:36:25 · 1993 阅读 · 0 评论 -
Android ApiDemos示例解析(174):Views->Lists->7. Cursor(Phones)
ListActivity 缺省Layout为一个全屏显示的单个列表,但Android允许使用setContentView() 为ListActivity使用自定义的Layout。此时Layout中必须含有一个id 为@android:id/list 的ListView。本例使用了自定义的Layout作为ListActivity 的ContentView.R.layout.list_7.xm原创 2012-09-24 10:59:23 · 1991 阅读 · 1 评论 -
Android ApiDemos示例解析(173):Views->Lists->6. ListAdapter Collapsed
本例使用自定义的ListAdapter 实现了类似Expandable Lists 的功能 Android ApiDemos示例解析(112):Views->Expandable Lists->1. Custom Adapter使用的自定义View SpeechView ,功能和例子Lists->4. ListAdapter 的固定链接" rel="bookmark" href="ht原创 2012-09-23 21:08:32 · 2391 阅读 · 0 评论 -
Android ApiDemos示例解析(172):Views->Lists->5. Separators
有时需要在列表中显示一些分隔线,这可以通过派生BaseAdapter ,重载areAllItemsEnabled 和isEnabled 方法。boolean isEnabled(int position)返回true 时,表示该位置不是分隔线(separator),false 表示该行为分隔线,分隔线不支持点击事件,本例对以“-”开始的行定义为分隔线:@Overridepublic原创 2012-09-22 08:57:46 · 2219 阅读 · 0 评论 -
Android ApiDemos示例解析(171):Views->Lists->4. ListAdapter
本例通过自定义BaseAdapter(实现接口ListAdapter),创建了一个自定义的ListAdapter ,类似的例子可以参见Android ApiDemos示例解析(119):Views->Gallery->1. Photos。使用自定义的ListAdapter ,可以自定义列表项的显示UI,通过重载ListAdpater 的getView 方法,ListAdapter缺省返原创 2012-09-21 08:19:45 · 2430 阅读 · 2 评论