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"/>
分享到:
相关推荐
Android开发资源整理 article:分类积累开发中一些不错的技术博文,主要针对某个知识点做讲解。 blog:包括国内外优秀开发者及其他们的博客。 project:整理开源社区中优秀的开源项目,话说看别人的代码也是一种很...
awesome-android-learning-resources:for适用于android应用程序开发人员的精选android优秀学习资源列表
在android中怎么使用资源.你可以看看这个学习andriod有很大的帮助!
java8集合源码Android-resources-Roadmap Android 开发者资源 官方网站 代码实验室 YouTube Android 开发者博客 Kotlin 存储库 Github/安卓 Android 架构蓝图 v2 Android 架构组件示例 课程 训练 学习 Android 版 ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
借助这些有用的在线资源,您可以更轻松地进入 Android 开发的世界。 这里有一些你可能想看看的网站! 最佳安卓教程合集 Android 学习指南- 教程- 网上帮助 Android 教程平台 初学者的一般主题 尖端 电子书 视频 文档...
我们将一起学习成为出色的Android开发人员。 入门 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以进行开发和测试。 先决条件 开放的思想和开放的心。 <3 正在安装 待定 运行测试 待定 分解为...
适用于Android开发人员的经过整理和整理的资源清单 我正在尝试编译和整理一系列资源,这些资源对于Android开发人员来说非常方便。 就像聚合器一样,为我们的兄弟情谊提供了所有重要的重要信息。 注意:这是一个持续...
这是一本学习android的好书,我浏览了,是老外著的,高清晰的pdf。为了方便大家学习android,我将本书所附的源码一块打包了。方便了不少,如果觉得好就顶一下吧,大家共同进步。 另外一本pro android 的下载地址: ...
实验02 渐进Android UI设计 【学习材料】 http://pan.baidu.com/s/1c2FKau0 密码: mws4 【实验目的】 掌握各Android布局设计,熟悉各Android资源、控件使用。 【实验要求】 按要求设计一个Android活动窗体,使用一定...
图标,UI套件,线框,iOS,Android草图模板 探索,安装,使用和重新混合数千个文件和插件 无限的UI套件,图标,模板,主题等(免费和高级) 精心设计的美味设计资源每个像素。 免费供个人和商业使用 浏览我们的...
聚合资源以学习和理解RxJava,Rx Android(和一般的Rx)。 [WIP]当我找到新资源时,我将不断更新(我的唯一规则是在将资源放在此处之前先了解该资源)。 官方资源 。 介绍 经过 。 。 。 。 热与冷 。 。 经过 。 。...
android调用matlab代码 注意:本资源指南的目的不是定量,而是定性。 如果您想建议一些更好的资源、添加一些资源或进行任何改进,您可以提出拉取请求。 如果任何链接不起作用,您可以提出问题。 享受并继续编程! ...
对开发人员有用的资源 被认为对每个开发人员都有用并... :精选的移动应用开发有用资源列表(适用于Android,iOS,Windows或任何其他移动系统 :一系列播客,涵盖诸如编码,设计,可访问性,JavaScript和心态/自我开发
创建的这个存储库中,您可以找到有用资源的链接列表,以便在完成纳米学位后继续学习和扩展您的作品集。 纳米学位分为学校: 人工智能学院 资源 - 协作更新了深度学习链接的 Google 电子表格,包括课程、书籍、播客、...
Java程序设计 如果喜欢存储库,并且将其视为学习Java的有用资源,请给它加星号介绍该存储库旨在帮助新的Java开发人员。 它包含简单程序和算法的示例。主要议题在该存储库中贡献了以下主要主题。 数据结构演算法...
++,C,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。 -DLib具有用于人脸检测和训练通用对象检测器的C ++和Python接口。 -Eblearn是一个面向对象的C ++库,实现了各种机器学习模型 -一套易于...
matlab有什么好玩的代码学生的DevHack资源 目录 :clipboard: :chart_increasing: ...Android开发 :baby: :heavy_dollar_sign: 1.5后端开发 Django-Python :baby: :baby: 烧瓶-Python :baby: +中级 节点JS
PS:关于Styles的学习,可以参见:http://code.google.com/android/reference/available-resources.html#stylesandthemes 2)设置当前activity的属性,两种方式:1.在manifest文件中给指定的activity增加属性 ...