`
ck19860613
  • 浏览: 87410 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[Android学习笔记]资源(resources)的使用和重点

阅读更多

顺便推荐一本Android入门的好书,不过目前只有英文版的,书名是Pro Android 2.

几乎所有的UI 框架(UI framworks)都会使用到资源,但Android有些不同,他用到了R.class类来把资源IDs和资源联系在一起,这是一种快速访问资源的能力。在开发中我们会用到的关键资源类型有

Resource Type

Location

Description

------------------------------------------------------------------------------------------

Strings

Colors

Dimetions

/res/values/any-file.xml

/res/values/any-file.xml

/res/values/any-file.xml

标签属性名名称(name="你给的名称")就是代表该资源的ids

表示颜色的标识符(color identifiers)指向颜色代码(color codes),在any-file.xml文件中,表示颜色的XML节点是/resources/color,即颜色由资源标签(tag)<color>定义,定义后的颜色ids出现在R.class中作为R.color.*。

 

表示字符串资源。除了简单的字符串外,字符串资源还允许使用java语言中的格式化字符串以及原始html.这些字符串资源的ids出现在R.class中作为R.string.*,他们在文件中的XML节点是/resources/string。

 

表示在Android中的各种元素或视图的大小(size)或尺寸(dimention),在any-file.xml文件中的节点是/resources/dimen,相应地其ids在R.class中生成R.dimen.*。

注意,为了方便,我们往往把程序用到的所有字符串资源定义在一个strings.xml文件中,其实,我们可以在任意多个any-file.xml文件中定义string、color、dimen资源,其中只要确保资源ids的唯一性,以及使用对应的资源标签(如<color>定义颜色),否则,编译时出错,也不能生成相应的R.class文件(R.class文件是不可以人为编辑的,即使可以,只要在/res下的子目录中的文件发生改变,系统会依据/res中的各种资源文件自动生成/更新R.class文件)。

代码例子:

/res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>

  <resources>
    <string name="hello1">Hello</string>

  </resources>

/res/values/strings1.xml

<?xml version="1.0" encoding="utf-8"?>

  <resources>
    <string name="hello2">Hello</string>

  </resources>

在两个资源文件中我们为字符串Hello定义了两个不同的ids,相应的在R.class中生成R.string.hello1和R.string.hello2。

也可以这样

<?xml version="1.0" encoding="utf-8"?>

  <resources>
    <string name="hello2">Hello</string>

    <color name="white">#ffffffff</color>

    <drawable name="white">#ffffffff</color>

  </resources>

系统会自动读取/res/value目录下的所有文件,根据资源标签来生成做为R.class中的R.*.ids.

 

Resource Type

Location

Description

------------------------------------------------------------------------------------------
Images

/res/drawable/multiplefiles

Color Drawable   

/res/values/any-file或是/res/drawable/multiplefiles

任意的XML文件(XML Files)

/res/xml/*.xml

任意的原始文件(Raw Resources)

/res/raw/*.*

任意的原始资源(Raw Assets)

assets/*.*/*.*

在Android中,只有/assets允许建立其他的子目录,而且任意深度的目录结构下的文件都可以被Android访问。

在Android中,资源编译器会把除了/res/raw和/assets目录以外的所有资源文件编译成二进制文件。

 

对于image资源,Android支持的图片格式有jpg、png、gif等,而且/res/drawable/下的每个image会以文件名做为R.class里R.drawable.*中的ids。

 

/res/values子目录中的<drawable>资源标签,表示颜色的矩形将用于视图的背景或是用做单一色的bitmap,就好像在java中创建一个有色的矩形并把它设置成视图的背景,对应的,其定义节点是/resources/drawable,在R.class中生成R.drawable.*。Android也支持定义圆角矩形和梯形矩形,通过在/res/drawable子目录下定义一个xml文件,该xml的根标签(root xml tag)是<shape>。该xml的文件名被转换成唯一的ids放于R.drawable.*中指代。

 

Android也允许任意的XML文件做为资源,这些文件会被aapt编译器编译成为二进制文件,其定义在/res/xml中,xml文件名做为ids放于R.xml.*。

2
0
分享到:
评论

相关推荐

    第一行代码 android学习笔记 完整版

    本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android的基本概念和开发技术。 一、Android系统架构 Android系统架构是Android开发的基础,系统架构包括Linux Kernel、...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...

    Android学习笔记

    ### Android学习笔记 #### 1. Android概述 **1.1 Android的特性** - **应用框架**:Android提供了一个强大的应用框架,使得开发者能够轻松地重用基础组件和服务,简化了应用程序的开发流程。 - **Dalvik虚拟机**...

    Android学习笔记.doc Android学习笔记.doc

    【Android学习笔记】 Android平台是谷歌推出的一个开放源代码的移动设备操作系统,它为开发者提供了一个全面的软件包,包括操作系统、中间件和关键应用程序。这个平台的主要目标是促进移动应用的创新和多样性,允许...

    android入门学习笔记

    ### Android入门学习笔记知识点梳理 #### 第四讲:Android应用中的资源管理与界面布局 **1. 显示“Hello World”的方法** - **资源管理**:在Android开发中,资源通常存储在`res`目录下,包括图片、布局文件、...

    android 学习笔记(全全整理)

    Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...

    android 学习笔记

    Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...

    Android开发学习笔记(整理)

    Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...

    Android Activity学习笔记

    Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...

    android 学习笔记doc

    这篇学习笔记涵盖了Android开发的基本知识点,旨在帮助初学者系统地理解和深入探索这个平台。 1. **Android系统架构**:Android由Linux内核、硬件抽象层(HAL)、运行库层、应用程序框架层和应用程序层组成。了解...

    黑马程序员Android学习笔记

    总而言之,《黑马程序员Android学习笔记》是一份全面的学习资源,它不仅教授Android开发的基础,还覆盖了许多实际开发中可能遇到的问题和解决方案。通过深入学习和实践,你将能够熟练掌握Android应用开发,成为一名...

    android\Android学习笔记

    ### Android学习笔记精要 #### 一、Android平台概述与特性 Android平台是谷歌推出的针对移动设备的操作系统,集成了操作系统、中间件和关键应用程序,为开发者提供了完整的开发环境。其核心特性包括: 1. **应用...

    ArcGIS for android学习笔记

    本篇学习笔记主要涵盖了ArcGIS for Android的基础配置和核心组件MapVie的使用。 首先,配置ArcGIS for Android项目需要在`Project`级别的`build.gradle`文件中添加Esri的仓库,确保能获取到所需的库。接着,在`...

    Android学习新手笔记

    标题《Android学习新手笔记》所涉及的知识点: 1. Android背景知识 - Android系统基于Linux系统开发,拥有开放源码。 - Android系统框架由多个组件构成,其中包括Activity、Intent、Service、ContentProvider、...

    android学习笔记.zip

    - **环境搭建**:学习笔记首先从Android Studio的安装和配置开始,这是所有Android开发的起点,包括SDK Manager的使用,用于下载不同版本的Android SDK和所需的工具。 - **Hello World**:初学者通常通过编写第一...

    Android学习笔记1

    从学习笔记来看,笔记作者主要通过实例操作来逐步理解和掌握Android应用开发的各个方面,从基础的界面搭建到复杂的交互逻辑处理都有涉及。通过这些笔记,我们了解到一个初学者是如何逐步掌握Android开发技能的,并且...

Global site tag (gtag.js) - Google Analytics