疯狂Android讲义 - 学习笔记(五)
第五章
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讲义 - 学习笔记(五)的更多相关文章
- 疯狂Android讲义 - 学习笔记(八)
第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...
- 疯狂Android讲义 - 学习笔记(七)
第8章 Android数据存储与IO Java IO的数据存储可以移植到Android应用开发上来,Android系统还提供了一些专门的IO API. Android系统内置了SQLite数据库,S ...
- 疯狂Android讲义 - 学习笔记(六)
第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...
- 疯狂Android讲义 - 学习笔记(四)
Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶.Activity相当于Java Web开发的Servlet.当Activi ...
- 疯狂Android讲义 - 学习笔记(三)
Android的事件处理 3.1 Android提供了两套事件处理机制:基于监听的事件处理.基于回调的事件处理. 3.2 基于监听的事件处理 3.2.1 监听的处理模型 主要涉及三类对象:Event ...
- 疯狂Android讲义 - 学习笔记(二)
Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...
- 疯狂Android讲义 - 学习笔记(一)
常用开发工具的用法 android : 启动Android SDK管理器 android --help 查看具体用法 android create avd -n t10 -t 10 -b armea ...
- 【疯狂Java讲义学习笔记】【流程控制与数组】
[学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...
- 【疯狂Java讲义学习笔记】【数据类型与运算符】
[学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...
随机推荐
- iOS开发系列--Objective-C之类和对象
概述 前面已经简单介绍过ObjC的基础知识,让大家对ObjC有个大致的印象,今天将重点解释ObjC面向对象的特性.ObjC相对于C语言多了面向对象特性,但是ObjC又没有其他面向对象语言那么多语法特性 ...
- 部分安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
前端JS中使用XMLHttpRequest 2上传图片到服务器,PC端和大部分手机上都正常,但在少部分安卓手机上上传失败,服务器上查看图片,显示字节数为0.下面是上传图片的核心代码: HTML < ...
- zookeeper分布式锁实现
1.定义分布式锁接口 package com.ljq.lock; import java.util.concurrent.TimeUnit; public interface DistributedL ...
- Thread.Sleep引发ThreadAbortException异常
短信平台记录日志模块,是通过异步方式来记录的,即日志工具类里初始化一个Queue对象,公共的写日志方法的处理逻辑是把日志消息放到Queue里.构造器里设定一个死循环,不停的读队,然后把日志消息持久化到 ...
- Minor【 PHP框架】6.代理
框架Github地址:github.com/Orlion/Minor (如果觉得还不错给个star哦(^-^)V) 框架作者: Orlion 知乎:https://www.zhihu.com/peop ...
- 通过3个Hello World应用来了解ASP.NET 5应用是如何运行的(2)
对于上面创建的这个Hello World应用来说,程序入口点由应用自身来提供,所以应用本身具有自我执行的能力.从应用托管(Host)的角度来讲,这样的应用同时负责对自身的托管.将应用与托管环境独立起来 ...
- 解决Oracle SQL Developer无法连接远程服务器的问题
在使用Oracle SQL Developer连接远程服务器的时候,出现如下的错误 在服务器本地是可以正常连接的.这个让人想起来,跟SQL Server的一些设计有些类似,服务器估计默认只在本地监听, ...
- Rust初步(六):在C#中使用Rust组件
上一篇文章,我们通过实例比较了一下C#和Rust的性能表现,应该说在Release模式下面,Rust进行计算密集型的运算还是有些比较明显的优势的.那么,我们有没有可能,在C#中做一些快速应用开发,而一 ...
- C算法编程题系列
我的编程开始(C) C算法编程题(一)扑克牌发牌 C算法编程题(二)正螺旋 C算法编程题(三)画表格 C算法编程题(四)上三角 C算法编程题(五)“E”的变换 C算法编程题(六)串的处理 C算法编程题 ...
- IOS中block和代理
从ios4开始引入block,就是代码块,结构类c语言 基本结构 返回值 (^block名称)(参数):int(^BlockName)(int):返回值为int型,参数是一个int值的叫BlockNa ...