Android学习笔记之资源访问

来源:互联网 发布:java变成学到什么程度 编辑:程序博客网 时间:2024/05/21 22:34

Android中的资源是指可以在代码中使用的外部文件,这些文件作为应用程序的一部分,被编译到应用程序中。在Android中,各种资源都被保存到Android应用的res目录下对应的子目录中,这些资源既可以在Java文件中使用,也可以在其他XML资源文件中使用。


一、字符串(string)资源

二、颜色(color)资源

三、尺寸(dimen)资源

1.Android支持的尺寸单元

①px

②in

③pt

④dip或dp

⑤sp

⑥mm

四、布局(Layout)资源

五、数组(array)资源

1.定义数组资源

数组资源文件位于res\values目录下,根元素是<resources></resources>标记,在该元素中,包括以下3个子元素。

①<array>

②<integer-array>

③<string-array>

无论使用上面3个子元素中的哪一个,都可以使用name属性定义数组名称,并且在起始标记和结束标记中间使用<item></item>标记数组中的元素。

六、Drawable资源

Drawable资源是Android应用中使用最广泛、灵活的资源。它不仅可以直接使用图片作为资源,而且可以使用多种XML文件作为资源,只要XML文件可以被系统编译成Drawable子类的对象,那么XML文件就可以作为Drawable资源。

1.图片资源

2.StateListDrawable资源

StateListDrawable资源是定义在XML文件中的Drawable对象,能根据状态来呈现不同的图像。

StateListDrawable资源文件同图片资源一样,也放在res\drawable目录中。StateListDrawable资源文件的根元素为<selector></selector>,在该元素中可以包括多个<item></item>元素。每个 item元素可以设置以下两个属性。

①android:color或android:drawable:用于指定颜色或Drawable资源。

②android:state_xxx:用于指定一个特定的状态,常用的状态属性如下:

android:state_active:

android:state_checked:

android:state_enabled:

android:state_first:

android:state_focused:

android:state_last:

android:state_middle:

android:state_pressed:

android:state_window_focused:


eg.

<?xml version="1.0"  en=coding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:color="#f60" android:state_focused="true"/>

<item android:color="#0a0" android:state_focused="false"/>

</selector>


七、样式(style)和主题(theme)资源


在Android中,提供了用于对Android应用进行美化的样式和主题资源,使用这些资源可以开发出各种风格的Android应用。

1.样式资源

样式资源主要用于对组件的显示样式进行控制,如改变文本框显示文字的大小和颜色等。样式资源文件放置在res\values目录中,其根元素是<resources></resources>标记,在该元素中,使用<style></style>标记定义样式,其中,通过为<style></style>标记设置name属性来指定样式的名称;在起始标记<style>和结束标记</style>中间添加<itme></item>标记来定义格式项,在一个<style></style>标记中,可以包括多个<item></item>标记。

<resources>

    <style name="title">

        <item name="android:textSize">48px</item>

        <item name="android:textColor">#f60</item>

    </style>

<.resources>

在Android中,还支持继承样式的功能,只需要在<style></style>标记中使用parent属性进行设置即可。

<resources>

    <style name="basic">

       <item name="android:textSize">48px</item>

       <item name="android:textColor">#f60</item>

    </style>

    <style name="title" parent="basic">

        <item name="android:padding">10px</item>

        <item name="android:gravity">center</item>

    </style>

<resources>

说明:当一个样式继承另一个样式后,如果在该子样式中,出现了与父样式相同的属性,将用子样式中定义的属性值。

2.主题资源

主题资源与样式资源类似,定义主题资源文件也是保存在res\values目录中,其根元素同样是<resources></resources>标记,在该标记中,也是是使用<style></style>标记定义主题。所不同的是,主题资源不能作用于单个的View组件,而是对所有(或单个)Activty起作用。通常情况下,主题中定义的格式都是为改变窗口外观而设置的。

<resources>

    <style name="bg">

        <item name="androidwindowBackground">@drawable/background</item>

    </style>

</resources>

eg.背景半透明效果的Activity

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

<resources>

    <style>

       <item name="android:alpha">0.95</item>

       <item name="android:windowNoTitle">true</item>

   </style>

</resources>

注:android:alpha属性用于设置透明度,其属性值为浮点型,0.0表示完全透明,1.0表示完全不透明。


八、原始XML资源

这里所说的原始XML资源,是指一份格式良好的、没有特殊要求的普通XML文件。它一般保存在res\xml目录(需手动创建),通过Resources.getXml()方法来访问。

九、菜单(menu)资源


十、Android程序国际化

在编写Android项目时,通常都是将程序中需要使用的字符串资源放置在res\values目录下的string.xml文件中,为了实现这些字符串资源的国际化,可以在Android项目的res目录下创建对应于各个语言的资源文件夹(例如,为了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN、values-zh-rTW和values-en-rUS的文件夹),然后在每个文件夹中创建一个对应的string.xml文件,并在该文件中定义对应语言的字符串即可。这样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息。

原创粉丝点击