第五章

Android使用统一的Intent对象来封装“启动意图”,不管是启动Activity、Service组件、或者BroadcastReceiver等,提供了一致的编程模型。Intent设计有点类似于Struts2框架中的逻辑视图设计。

Intent还是应用程序组件之间通信的重要媒介:数据封装成Bundle对象,Intent携带Bundle对象。

5.1 Intent对象详解

5.2 Intent的属性及intent-filter配置

5.2.1 Component属性

5.2.2 Action、Category属性与intent-filter配置

Intent通过指定Action属性,可以把该Intent与具体的Activity分离,从而提供高层次的解耦。

每个Intent只能指定一个Action要求,但可以指定多个Category要求。

每个组件通过<intent-filter.../> 元素,可以声明自己满足多个Action要求,可满足多个Category要求。

5.2.3 指定Action、Category调用系统Activity,只要权限允许。 P298 表5.2和表5.3 启动Activity的标准Action常量和Category常量。(源码\05\5.2\SysAction  显示系统联系人列表,取出名字、电话)

5.2.4 Data、Type属性与intent-filter配置

Data属性通常用于向Action属性提供操作的数据,Data属性接受一个Uri对象。

Type属性用于指定Data所指Uri对应的MIME类型,这种MIME类型可以是任何自定义的MIME类型。

Data属性和Type属性的关系比较微妙,这两个属性会相互覆盖,如果希望Intent既有Data属性,也有Type属性,应该调用Intent的setDataAndType()方法。

(源码\05\5.2\ActionData  使用Action、Data属性启动系统Activity)

5.2.5 Extra属性

5.2.6 Flag属性  P311 Intent的常用Flag

5.3 使用Intent创建Tab页面

(源码\05\5.2\ActionData)

第六章

Android应用的源代码可分为如下三大类:

1 界面布局文件:XML文件,文件中的标签对应于相应的View标签

2 Java源文件:应用中的Activity、Service、BroadcastReceiver、ContentProvider四大组件

3 资源文件:主要是各种XML文件,还可包括图片资源。

6.1 资源的类型及存储方式

Android应用资源可分为两大类:

1 无法通过R资源清单类访问的原生资源,保存在assets目录下。

2 可通过R资源清单类访问的资源,保存在res目录下。

6.1.1 资源的类型以及存储方式

表6.1  P316

6.1.2 使用资源

1 在Java代码中使用资源清单项:[package_name.] R.resouce_type.resource_name

2 在Java代码中访问实际资源,需要借助于Android提供的Resource类。

Resource.getXxx(int id) :根据资源清单ID来获取实际资源

Resource.getAssets():获取访问/assets/目录下资源的AssetManager对象

3 在XML文件中使用资源

6.2 使用字符串、颜色、尺寸资源

它们对应的XML文件都将位于/res/values目录下。

6.2.1 颜色值的定义

6.2.2 定义字符串、颜色、尺寸资源文件

6.2.3 使用字符串、颜色、尺寸资源

6.3 数组(Array)资源

Android采用位于/res/values目录下的arrays.xml文件来定义数组

6.4 使用Drawable资源

6.4.1 图片资源

6.4.2 StateListDrawable资源:用于组织多个Drawable对象。

(源码\06\6.4\StateListDrawableTest 高亮显示正在输入的文本框)

6.4.3 LayerDrawable资源,与上类似,可包含一个Drawable数组,系统将会按数组中的顺序绘制它们,索引最大的Drawable对象将会被绘制在最上面。

(源码\06\6.4\LayerDrawableTest 定制拖动条外观)

6.4.4 ShapeDrawable资源 用于定义一个基本的几何图形。

6.4.5 ClipDrawable资源 代表从其他位图上截取的一个图片片段。

6.4.6 AnimationDrawable资源 代表一个动画

6.5 属性动画资源(Property Animation)

Animator代表一个属性动画,但它只是一个抽象类,通常会使用它的子类:AnimatorSet、ValueAnimator、ObjectAnimator、TimeAnimator。(源码\06\6.5\AnimatorTest)

6.6 使用原始XML资源

6.6.1 定义原始XML资源

原始XML资源一般保存在/res/xml路径下,需要手动创建这个目录。

6.6.2 使用原始XML文件(源码\06\6.6\XmlResTest)

6.7 使用布局(Layout)资源 

6.8 使用菜单(Menu)资源

6.9 样式(Style) 和主题(Theme)资源

6.9.1 样式资源  也放在/res/values目录下

6.9.2 主题资源  也放在/res/values目录下

主题与样式的区别:

1 主题不能作用于单个的View组件,主题应该对整个应用中的所有Activity起作用,或对指定的Activity起作用。

2 主题定义的格式应该是改变窗口外观的格式,如窗口标题、窗口边框等。

6.10 属性(Attribute)资源 

(源码\06\6.10\AttrResTest)

6.11 使用原始资源

Android的原始资源可以放在如下两个地方:

1 /res/raw   Android SDK会再R清单类中为该目录下的资源生成一个索引项。

2 /assets    该目录下的资源是更彻底的原始资源。Android应用需要通过AssetManager来管理该目录下的原始资源。

6.12 国际化和资源自适应 

Internationalization     I18N

Localization     L10N

6.12.1 Java国际化的思路

6.12.2 Java支持的语言和国家

6.12.3 完成程序国家化

6.12.4 为Android应用提供国际化资源

6.13 自适应不同屏幕的资源

疯狂Android讲义 - 学习笔记(五)的更多相关文章

  1. 疯狂Android讲义 - 学习笔记(八)

    第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...

  2. 疯狂Android讲义 - 学习笔记(七)

    第8章 Android数据存储与IO  Java IO的数据存储可以移植到Android应用开发上来,Android系统还提供了一些专门的IO API. Android系统内置了SQLite数据库,S ...

  3. 疯狂Android讲义 - 学习笔记(六)

    第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...

  4. 疯狂Android讲义 - 学习笔记(四)

    Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶.Activity相当于Java Web开发的Servlet.当Activi ...

  5. 疯狂Android讲义 - 学习笔记(三)

    Android的事件处理 3.1 Android提供了两套事件处理机制:基于监听的事件处理.基于回调的事件处理. 3.2 基于监听的事件处理 3.2.1 监听的处理模型  主要涉及三类对象:Event ...

  6. 疯狂Android讲义 - 学习笔记(二)

    Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...

  7. 疯狂Android讲义 - 学习笔记(一)

    常用开发工具的用法 android : 启动Android SDK管理器 android --help  查看具体用法 android create avd -n t10 -t 10 -b armea ...

  8. 【疯狂Java讲义学习笔记】【流程控制与数组】

    [学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...

  9. 【疯狂Java讲义学习笔记】【数据类型与运算符】

    [学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...

随机推荐

  1. SQL Server 深入解析索引存储(中)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/堆 概述 本篇文章是关于堆的存储结构.堆是不含聚集索引的表(所以只有非聚集索引的表也是堆).堆的 sys.parti ...

  2. android服务里生成通知点击后返回正在运行的程序和当前的Activity

    想在服务里生成一个通知,并且点击通知打开当前应用程序下单当前活动,折腾了半天,网上的那些都不靠谱,试了半天,最后把ActivityManager和反射都用进来了,终于解决了这个问题.这样在服务中想恢复 ...

  3. Win8 Metro动态加载内容框架

    制作背景 为了参加ImagineCup 2013 世界公民类比赛,我们设计制作了一个可动态扩展的幼教类App.这个App需要能动态加载内容,内容包括带动画可交互的电子书,动画,视频,游戏. 技术支持 ...

  4. android内部培训视频_第二节 布局基础

    第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...

  5. 东哥读书小记 之 《MacTalk人生元编程》

         一直以来的自我感觉:自己是个记性偏弱的人.反正从小读书就喜欢做笔记(可自己的字写得巨丑无比,尼玛不科学呀),抄书这事儿真的就常发生俺的身上. 因为那时经常要背诵课文之类,反正为了怕自己忘记, ...

  6. Oracle编程脚本记录

    --命令窗口查询 exec 存储名.包名.视图; select 函数名 from dual; create or replace procedure PR_test is begin --存储过程的代 ...

  7. Js replace() 学习笔记

    最近捣鼓着学习Js,发现replace()真的很有用,替换功能杠杠的棒. 接下来看看我遇到的问题: 有两个随机给出的字符串,字符串1'xxxxxx',字符串2'====T'(这两个用作示例,其他为随机 ...

  8. 这台计算机上缺少此项目引用的 NuGet 程序包-缺少的文件是 ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props

    异常处理汇总-开发工具  http://www.cnblogs.com/dunitian/p/4522988.html 协助开发里面总有几个是极简爱好者,但是呢删了不该删的就会影响项目开发,下面看下完 ...

  9. Sql Server系列:游标

    1. 游标简介 游标是一种处理数据的方法,主要用于存储过程.触发器和Transact-SQL脚本中.SELECT语句返回的是一个结果集,游标能够从包含多条数据记录的结果集中每次提取一条记录. 游标的特 ...

  10. typeof知多少

    昨天同事给我看了一道代码题,是关于typeof的,感觉挺有意思的,在这里分享给大家,顺便自己再对typeof总结总结.如有不对,请给予指出,共同进步. 代码是这样的: <!DOCTYPE htm ...