最近复习Android资源文件的内容,留下点记录以备后用。

Android中的资源主要是指存放在应用程序或者Framework相应包下/res中的内容。它们可以被本地化,如果必要的话会被编译成二进制文件以节约空间,并且,Eclipse开发环境可以为这些内容生成ID,存放在R.java文件中,以便程序内或其他XML文件中引用。/res文件夹只有固定的一些子目录结构,不能支持多层文件结构。

把一些最基本的内容列表如下。

资源类型

存放位置

生成ID的方式

在XML文件中的标签

在程序中使用

备注

颜色值

/res/values

R.color,每个标签单独生成

color

resources.getColor(R.color.name);

字符串

/res/values

R.string,

每个标签单独生成

string

resources.getString(R.string.name);
resources.getText(R.string.name);

两种使用方法的区别是,后者返回本地化且包含样式的字符串。

字符串数组

/res/values

R.array,每个标签单独生成

string-array

resources.getStringArray(R.array.name);
resources.getTextArray(R.array.name);

两种使用方法区别同上。

数量字符串

/res/values

R.plurals,每个标签单独生成

plurals

resources.getQuantityString(R.plurals.name);
resources.getQuantityText(R.plurals.name);

用来描述单复数对名词造成的区别。两种用法区别同上。

尺寸

/res/values

R.dimen,每个标签单独生成

dimen

float size =
resources.getDimension(R.dimen.name);

注意各种单位的区别。

图片

/res/drawable

R.drawable,每个文件单独生成

N/A

BitmapDrawable d = 
(BitmapDrawble)(resources.
getDrawable(R.drawable.name));

有gif、jpg、png、9.png等类型。

矩形颜色块

/res/values或/res/drawable

R.drawable,每个标签单独生成

drawable

ColorDrawable c =
(ColorDrawable)(resources.
getDrawable(R.drawable.name));

圆角矩形

/res/value或/res/drawable

R.drawable,每个文件单独生成

shape

GradiantDrawable roundedRectangle =
(GradientDrawable)(resources.
getDrawable(R.drawable.name));

布局

/res/layout

R.layout,每个文件单独生成

LinearLayout、FrameLayout、RelativeLayout等等

setContentView(R.layout.layoutName);
View view = findViewById(R.id.viewName);

setContentView决定当前Activity用哪个布局文件,在此调用之后方可以使用findViewById来获取某个控件的引用。

任意xml

/res/xml

R.xml,每个文件单独生成

N/A

XmlResourceParser parser =
Resources.getXml(R.xml.name);

任意其他资源

/res/raw

R.raw,每个文件单独生成

N/A

InputStream is =
Resources.openRawResources(R.raw.name);

除此之外,Android应用中还有一个assets文件夹,其中可以存放任意的文件夹结构和文件,不会被编译或者本地化。使用时需要:

AssetManager am = myActivity.getAssets();
InputStream is = am.open(filePathRelativeToAssetFolder);
// Do something to is
is.close();

Android中的资源文件的更多相关文章

  1. Android开发---如何操作资源目录中的资源文件4 ---访问xml的配置资源文件的内容

    Android开发---如何操作资源目录中的资源文件4 XML,位于res/xml/,这些静态的XML文件用于保存程序的数据和结构. XmlPullParser可以用于解释xml文件 效果图: 描述: ...

  2. Android开发---如何操作资源目录中的资源文件3--圆角边框、背景颜色渐变效果、边框颜色

    Android开发---如何操作资源目录中的资源文件3 效果图 1.圆角边框 2.背景颜色渐变效果 1.activity_main.xml 描述: 定义了一个shape资源管理按钮 <?xml ...

  3. Android开发 ---如何操作资源目录中的资源文件2

    Android开发 ---如何操作资源目录中的资源文件2 一.颜色资源管理 效果图: 描述: 1.改变字体的背景颜色 2.改变字体颜色 3.改变按钮颜色 4.图像颜色切换 操作描述: 点击(1)中的颜 ...

  4. Android开发---如何操作资源目录中的资源文件

    效果图: 1.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...

  5. android 中获取视频文件的缩略图(非原创)

    在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...

  6. 今天给大家分享一下Android中的资源与国际化的问题

    摘要:该文章将向大家分享Android中的资源与国际化的问题. 今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layo ...

  7. 修改Android中strings.xml文件, 动态改变数据

    有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name=&qu ...

  8. Android中的资源与国际化!

    Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layout与values目录,layout里的xml文件的我们应用使用布局的文件,val ...

  9. Android中的资源访问

    Android中的资源是指非代码部分,指外部文件. assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取. r ...

随机推荐

  1. troubleshooting ORA-600[6302] & ORA-600 [6200] corrupted index block

    今天同事的一套数据库遇到了alert 日志 一堆的ora-600,这是一套10.2.0.5 db 2nodes RAC on AIX , 找我帮着看看, 最终确认为一个索引出现了block corru ...

  2. java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹

    一.简述 zip用于压缩和解压文件.使用到的类有:ZipEntry  ZipOutputStream 二.具体实现代码 package com.joyplus.test; import java.io ...

  3. Eclipse反编译工具Jad及插件

    Eclipse反编译工具Jad及插件下载路径 http://download.csdn.net/detail/lijun7788/9689312 http://files.cnblogs.com/fi ...

  4. 打印十进制数n 递归

    #include<stdio.h> //printd函数: 打印十进制数n void printd(int n){ ){ putchar('-'); n=-n; } ) printd(n/ ...

  5. VC++ 17、18课

    进程间通信的四种方式: 剪贴板 匿名管道 命名管道 邮槽 容器和服务器程序 容器应用程序是可以嵌入或链接对象的应用程序.word就是容器应用程序. 服务器应用程序是创建对象并且当对象呗双击时,可以被启 ...

  6. angularjs应用骨架

    使用典型的类库时,你可以选择并使用你所喜欢的功能:而对于angularjs框架来说,必须把它看成一个完整的套件来使用,框架中的所有的东西都包含在里面,接下来将会介绍angular的基础模块,这样你就可 ...

  7. Apache提示You don't have permission to access / on this server问题解决

    测试时遇到将一本地目录设置为一apache的虚拟主机,在httpd-vhosts.conf文件中进行简单设置,然后在hosts文件中将访问地址指向本地,启动apache,进行访问,却出现了You do ...

  8. 如何在一个网站或者一个页面,去书写你的JS代码

    // JavaScript Document //如何在一个网站或者一个页面,去书写你的JS代码: //1.js的分层(功能) : jquery(tools) 组件(ui) 应用(app), mvc( ...

  9. InfoPath本地发布及部署

    前言 最近在接触SharePoint项目,第一次接触,总感觉有些不适应.以前只是听过,现在要遇见了,有些小紧张.今天改了一下表单的东西,也是对sharepoint的慢慢熟悉过程,分享给初学,或者未学者 ...

  10. windows通过Composer安装yii2

    1. php.ini 中;extension=php_openssl.dll(取消注释,不然在安装composer过程中会报错) 集成环境最好去php目录中打开php.ini文件,确定;extensi ...