`
minzaipiao
  • 浏览: 148633 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android学习之resources资源

阅读更多
android里的资源可以是一个文件(mp3,视频、音频)或者是一个值(一个对话框中的一个标题),这些值被绑定到一个可执行的应用程序。
这些文件和值被绑定到应用程序,你可以修改它们,但是不需要重新编译和重新部署应用程序。

android是一个平台,一个框架,这个框架包含许多资源,string、color、bitmap、style等。android的AAPT会自动为这些文件建立一个ID,在程序中就可以以使用这些ID来引用这些resources,如果你想改某个值,只需要修改这些resource而不需要修改源代码。


resources的使用
resoureces就是res目录下的那些目录和文件,常用的有:

res/drawable/ 用来存放图片文件
res/layout/ 用来存放布局定义文件
res/values/ 用来存放一些变量、参数等文件

android允许你定义多个string xml文件 这些resource位于/res/value目录下,文件名是任意的
这是一个普通的字符串资源文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, SendMessage!</string>
    <string name="app_name">SMS</string>
</resources>


当这个文件被创建或修改了,eclipse的adt插件会自动更新你源代码中一个叫R.java的文件
R.java
在R.java的注释部分, 有这样一段话:“AUTO-GENERATE FILE. DO NOT MODIFY”,这个文件是自动生成的,不要修改。
这个文件是在程序编译过程中由aapt(Android Asset Packaging Tool) 自动生成
这个文件中的属性都是public static final的,所以可以直接在Java代码中引用,每个属性都代表一个资源,看起来就像为每个资源都定义了一个ID,然后通过这个ID来访问资源
所有的资源文件都被编译进最后生成的二进制包中,这样能够带来很高的性能和效率

string的定义非常简单

<string name="key">value</string>


value可以只普通的字符串也可以是html代码,或者是包含单引号,双引号的字符串

 <string name="quoted_string">"quoted'string"</string>
    <string name="double_quoted_string">\"double quotes\"</string>
    <string name="target_string">hello <b><i>android</i></b>,you are very younger!</string>


在其他的android xml文件中引用含有html标记的值和引用普通的string一样
<TextView  android:text="@string/target_string"
	android:id="@+id/text3" 
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content"></TextView>

在java程序中应用这些值可以这样
this.getResources().getString(R.string.target_string);



dimension resources

android中定义的dimension单位有以下这些
  px: pixel(像素)
  in:inches(英寸)
  mm:millimeter(毫米)
  pt:point(点)
  dp:density密度
  sp:刻度
定义dimension可定义string一样

<resources>
  <dimen name="mysize_in_pixels">1px</dimen>
  <dimen name="mysize_in_dp">1dp</dimen>
  <dimen name="medium_size">100sp</dimen>

</resources>


你可以在style中或者定位android UI 中使用这些dimension资源

如果在java中需要使用这些dimensions可以调用getResources方法
this.getResources().getDimension(R.dimen.mysize_in_pixels);


在ml文件中使用dimension
<TextView  android:text="@string/target_string"
	android:id="@+id/text3" 
	android:layout_width="wrap_content" 
	android:textSize="@dimen/medium_size"	android:layout_height="wrap_content"></TextView>


Image resource

android会为每个放置在res/drawable目录下的图片文件生成ID,ID就是这个图片的文件名,如果一个图片的名是sample.gif那么就会在R.java文件中的drawable下生成
 public static final int sample=0x7f020001;

android支持的图片格式有:gif,jpg,png

在xml文件中使用image resource
	
<Button android:text="Button01" 
	android:id="@+id/Button01" 
	android:layout_width="wrap_content" 
	android:background="@drawable/sample"
	android:layout_height="wrap_content"></Button>


在java文件中通过调用getResources的getDrawable方法
Drawable bitmap = this.getResources().getDrawable(R.drawable.sampe);
        Button button = (Button)findViewById(R.id.Button01);
       //给button设置一个背景图
        button.setBackgroundDrawable(bitmap);


在android中image是drawable资源的一种类型,android还支持其他的drawable
它叫color-drawable,它本质上是一个彩色矩形

它的定义如下
<resources>
    <drawable name="red_rectangle">#f00</drawable>
    <drawable name="blue_rectangle">#0000ff</drawable>
    <drawable name="green_rectangle">#f0f0</drawable>
</resources>

Java中使用color-drawable
// 取得drawable
ColorDrawble redDrawable = 
(ColorDrawable)getResources().getDrawable(R.drawable.red_rectnagle);
//设置textView的背景
textView.setBackground(redDrawable);


xml中使用color-drawable
<TextView android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:textAlign="center"
          android:background="@drawable/red_rectangle"/>
14
1
分享到:
评论
2 楼 huangbiao 2011-08-13  
学习学习,谢谢分享
1 楼 liushian 2011-07-06  
在android中image是drawable资源的一种类型,android还支持其他的drawable
它叫color-drawable,它本质上是一个彩色矩形


学习了,谢谢分享!

相关推荐

    android-15 resources

    标题“android-15 resources”指的是与Android 15版本相关的资源集合,这通常包括了在Android SDK中用于开发和测试应用的各种资源文件。这些资源可能涵盖了图像、布局XML、字符串、颜色、样式以及用于示例和教程的...

    Android-Develop-Resources.zip

    "Android-Develop-Resources.zip"恰好满足了这一需求,它是一个开源项目,包含了丰富的Android开发资源,旨在帮助开发者更好地进行Android应用的构建和优化。 该压缩包的主要内容是"Android-Develop-Resources-...

    Android常用资源Map

    对于Android系统源码,开发者可以查看AOSP(Android Open Source Project)来学习关于Android资源管理的实现细节。 【标签】"工具"可能指的是Android Studio提供的各种辅助工具,如Resource Manager、Layout ...

    Android_Res_Export,在Sketch中导出Android资源-PNG资源、应用程序图标、九个补丁图像和矢量绘图。.zip

    在Android应用开发中,资源管理是一项至关重要的任务。"Android_Res_Export" 是一个开源项目,专注于帮助开发者从Sketch设计工具高效地导出适用于Android平台的资源,包括PNG图像、应用程序图标、九宫格图像(九个...

    android 学习精要

    3. 动态加载资源:在运行时,可以使用Resources 类来动态加载和访问应用资源,根据用户设置或设备条件提供定制的用户体验。 四、Android 网络编程 1. HttpURLConnection 和OkHttp:Android 提供了HttpURLConnection...

    android多种资源的链接

    通过复制并粘贴这些链接到浏览器,开发者可以学习和参考这些资源的实际应用方法。 总之,理解并有效利用Android的资源系统,不仅能提高开发效率,还能确保应用的可维护性和用户体验。开发者应该熟悉不同类型的资源...

    Android代码-android开发资源分类的整理

    Android开发资源整理 article:分类积累开发中一些不错的技术博文,主要针对某个知识点做讲解。 blog:包括国内外优秀开发者及其他们的博客。 project:整理开源社区中优秀的开源项目,话说看别人的代码也是一种很...

    Android资源文件(学习android必备)

    - **ColorDrawable**:一种简单的Drawable资源,可以在XML的`&lt;resources&gt;`元素下添加多个ColorDrawable,并使用`name`属性引用其值。 - **格式**:颜色值总是以“#”开头,常见的格式包括:`#RGB`、`#ARGB`、`#...

    android操作XML资源

    在Android开发中,XML资源是不可或缺的一部分,它们用于定义用户界面布局、字符串、颜色、样式等。本实例将深入探讨Android如何操作和调用XML资源,帮助初学者和开发者更好地理解这一过程。 首先,Android中的XML...

    A curated list of awesome Android packages and resources. .zip

    【标题】"A curated list of awesome Android packages and resources" 是一个专门为Android开发者准备的开源项目,它汇总了一系列高质量、实用的Android软件包和资源。这个压缩包 ".zip" 内包含了一个名为 "awesome...

    resources_zh_CN_AndroidStudio_3.4_r1.zip

    标题中的"resources_zh_CN_AndroidStudio_3.4_r1.zip"表明这是一个针对Android Studio的中文资源包,版本为3.4,修订版号为r1。这个压缩包是专门为那些希望在开发环境中使用中文界面的用户设计的,使得在编程过程中...

    Android字符串资源例子

    在Android开发中,字符串资源(String Resources)是管理应用中文本内容的重要工具,它提供了一种集中、可维护、可国际化的方式。本示例项目“Android字符串资源例子”着重展示了String、String Array和Plurals这三种...

    Android+学习笔记

    ### Android学习笔记知识点详解 #### 一、简介与背景 Android作为全球最受欢迎的移动操作系统之一,自2007年谷歌发布以来,迅速占领市场并持续引领移动技术的发展。随着移动互联网的兴起和发展,Android应用开发...

    Android学习笔记(三九):资源resource(下).doc

    在Android开发中,资源(Resource)管理是至关重要的部分,它允许开发者将应用程序的各种元素如字符串、颜色、尺寸、布局等存储在独立的文件中,方便管理和复用。本篇笔记将深入探讨Android资源的使用,包括尺寸...

    Android学习资源:Android学习资源网站索引大全

    "Android学习资源:Android学习资源网站索引大全" 提供了一个全面的指南,旨在帮助开发者和学习者有效地探索Android平台的知识。这个压缩包文件(Android-Learning-Resources-master)很可能包含了一系列链接、教程...

    awesome-android-learning-resources:for适用于android应用程序开发人员的精选android优秀学习资源列表

    "awesome-android-learning-resources" 是一个专门为Android开发者精心整理的学习资源列表,它涵盖了各种技术、框架、工具和指南,旨在帮助开发者提升Android应用开发能力。这个资源库尤其适合初学者和有经验的...

    Android程序开发学习平台的设计.pdf

    总结来说,Android程序开发学习平台通过整合多媒体、实验、案例和视频等多种学习资源,构建了一个全方位、互动式的学习环境,有效地推动了移动学习的发展,提升了学习效率,降低了学习的门槛。对于想要深入学习...

    Android_学习笔记

    ### Android学习笔记——从HelloWorld开始 #### 一、Google的Android SDK介绍 自从Google发布了Android SDK以来,这款开源移动操作系统迅速吸引了众多开发者的关注。Android SDK为开发者提供了丰富的工具和API,...

Global site tag (gtag.js) - Google Analytics