Android中主要资源文件及文件夹介绍

在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的

1:assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。
2:res文件夹里面的多个文件夹的各自介绍

res/anim/ XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象 res/drawable/ .png、.9.png、.jpg文件,它们被编译进以下的Drawable资源子类型中, 要获得这种类型的一个资源,可以使用Resource.getDrawable(id) ;为了获取资源类型,使用mContext.getResources().getDrawable(R.drawable.imageId) 注意:放在这里的图像资源可能会被aapt工具自动地进行无损压缩优化。比如,一个真彩色但并不需要256色的PNG可能会被转换为一个带调色板的8位PNG。这使得同等质量的图片占用更少的资源。所以我们得意识到这些放在该目录下的二进制图像在生成时可能会发生变化。如果你想读取一个图像位流并转换成一个位图(bitmap),请把图像文件放在res/raw/目录下,这样可以避免被自动优化。

res/layout/ 被编译为屏幕布局(或屏幕的一部分)的XML文件

res/values/ 可以被编译成很多种类型的资源的XML文件。注意: 不像其他的res/文件夹,它可以保存任意数量的文件,这些文件保存了要创建资源的描述,而不是资源本身。XML元素类型控制这些资源应该放在R类的什么地方。 尽管这个文件夹里的文件可以任意命名,不过下面使一些比较典型的文件(文件命名的惯例是将元素类型包含在该名称之中):

array.xml 定义数组

colors.xml 定义color drawable和颜色的字符串值(color string values)

使用Resource.getDrawable()和Resources.getColor()分别获得这些资源。

dimens.xml定义尺寸值(dimension value)。

使用Resources.getDimension()获得这些资源。

strings.xml定义字符串(string)值

使用Resources.getString()或者Resources.getText()获取这些资源。

styles.xml 定义样式(style)对象

res/xml/ 任意的XML文件,在运行时可以通过调用Resources.getXML()读取。

res/raw/ 直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。要使用这些资源,可以调用Resources.openRawResource(),参数是资源的ID,即R.raw.somefilename。

自动生成的R class 在项目文件夹的gen文件夹里面有个R.java,我们平常引用的资源主要引用这个类的变量。 注意:R类是自动生成的,并且它不能被手动修改。当资源发生变动时,它会自动修改。

在代码中使用资源下面是一个引用资源的语法:R.resource_type.resource_name 或者 android.R.resource_type.resource_name 其中resource_type是R的子类,保存资源的一个特定类型。resource_name是在XML文件定义的资源的name属性,或者有其他文件类型为资源定义的文件名(不包含扩展名,这指的是drawable文件夹里面的icon.png类似的文件,name=icon)。Android包含了很多标准资源,如屏幕样式和按钮背景。要在代码中引用这些资源,你必须使用android进行限定,如android.R.drawable.button_background。

xml文件内引用资源

1) 引用自定义的资源

android:text="@string/hello" 这里使用"@"前缀引入对一个资源的引用--在@[package:]type/name形式中后面的文本是资源的名称。在这种情况下,我们不需要指定包 名,因为我们引用的是我们自己包中的资源。type是xml子节点名,name是xml属性名:Hello World, HelloDemo!

2) 引用系统资源 android:textColor="@android :color/opaque_red" 指定package: android

3) 引用主题属性 另外一种资源值允许你引用当前主题中的属性的值。这个属性值只能在样式资源和XML属性中使用;它允许你通过将它们改变为当前主题提供的标准变化来改变UI元素的外观,而不是提供具体的值。 android:textColor="?android:textDisabledColor" 注意,这和资源引用非常类似,除了我们使用一个"?"前缀代替了"@"。当你使用这个标记时,你就提供了属性资源的名称,它将会在主题中被查找--因为资 源工具知道需要的属性资源,所以你不需要显示声明这个类型(如果声明,其形式就 是?android:attr/android:textDisabledColor)。除了使用这个资源的标识符来查询主题中的值代替原始的资源,其命 名语法和"@"形式一致:?[namespace:]type/name,这里类型可选。

Color Value语法: #color_value 可以保存在res/values/colors.xml (文件名可以任意)。

xml引用:android:textColor="@color/color_name"

其中#color_value有以下格式(A代表Alpha通道): #RGB #ARGB #RRGGBB #AARRGGBB xml示例(声明两个颜色,第一个不透明,第二个透明色):#f00 #80ff0000

Color Drawables语法: color_value 可以保存在res/values/colors.xml。

xml引用:android:background="@drawable/color_name"

java引用:Drawable redDrawable = Resources.getDrawable(R.drawable.color_name) color_name和上面的一样。

图片 一般放在res/drawable/里面 官方提示png (preferred), jpg (acceptable), gif (discouraged),看来一般使用png格式比较好!

xml引用 @[package:]drawable/some_file

java引用 R.drawable.some_file 引用是不带扩展名

dimension语法: dimen_value单位 一般保存为res/values/dimen.xml。

度量单位:

px(象素): 屏幕实际的象素,常说的分辨率1024*768pixels,就是横向1024px, 纵向768px,不同设备显示效果相同。in(英 寸): 屏幕的物理尺寸, 每英寸等于2.54厘米。 mm(毫米): 屏幕的物理尺寸。 pt(点) : 屏幕的物理尺寸。1/72英寸。 dp/dip : 与密度无关的象素,一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。但dp和px的比例会随着屏幕密度的变化而改变,不同设备有不同的显示效果。 sp : 与刻度无关的象素,主要用于字体显示best for textsize,作为和文字相关大小单位。

XML: android:textSize="@dimen/some_name"

assets 文件夹资源的访问 assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1. 先在Activity里面调用getAssets()来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。
4.调用AssetManager.close()关闭AssetManager。

注:本文章摘抄自http://www.jb51.net/article/39021.htm,如有侵权请联系删除。

时间: 2024-09-29 16:02:33

Android中主要资源文件及文件夹介绍的相关文章

笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)

打开后缀.apk的文件,即启动安装程序: //apkFilePath 文件路径 public void installAPK(String apkFilePath) { // 创建URI Uri uri = Uri.fromFile(new File(apkFilePath)); Intent intent = new Intent(Intent.ACTION_VIEW); // 设置Uri和类型 intent.setDataAndType(uri, "application/vnd.andro

Android中解析与创建XML文件

Android中解析与创建XML文件 在Android中对XML的操作有多种方式,常见的有三种方式:SAX.DOM和PULL方式. DOM方式会把整个XML文件加载到内存中,在PC上常使用DOM的方式. 但是在性能敏感的设备上,主要采用的是SAX的方式,但是缺点是嵌套多个分支的时候处理不是很方便. 而PULL的方式类似SAX方式,同样很节省内存. 因此,本文章中只提供PULL的方式解析与创建XML文件. 基础类 本例中使用的实体类的定义如下: public class CAddress impl

android中的资源

一.概括地讲,android中的资源是指非代码部分,比如图片.MP3.字符串.xml文件等.在一个android工程中,和src源文件夹并列的有两个文件夹,分别叫做res和assets,都是用来保存资源文件的. 不同点:1.res中的资源可以通过R资源类直接访问.这种方式比较常用. res中有包含各种子文件夹,对资源进行分类: anim(xml动画文件).drawable(图片),layout(布局文件).menu(菜单).raw(二进制文件).values(常量值).xml(xml文件).2.

Android之旅十六 android中各种资源的使用

android中各种资源的使用: 在android开发中,各种资源的合理使用应该在各自的xml中进行定义,以便重复使用; 字符串资源:strings.xml,xml中引用:@string/XXX,java代码中引用:R.string.XXX 样式资源:styles.xml,xml中引用:@style/XXX,java代码中引用:R.style.XXX 图片资源:colors.xml,xml中引用:@color/XXX,java代码中引用:R.color.XXX 尺寸资源:dimens.xml,x

Android中的资源访问

Android中的资源是指非代码部分,指外部文件. assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取. res中的资源可以通过R资源类直接访问. R类是自动生成的,在该类中根据不同的资源类型生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标识. 1.在代码中使用资源文件 在代码中访问资源文件,是通过R类中定义的资源文件类型和资源文件名称来访问的. 具体格式为: R.资源文件类型.资源文件名称

android中drawable资源的解释及例子

文章中的内容参考Dev Guide中的Drawable Resources,英文好的朋友可以直接去读英文.总结这篇文章的目的是自己在使用drawable资源遇到一些问题跟大家分享下,同时整理下自己对drawable的理解. drawable资源共有10种,包括Bitmap文件.Nine-Path文件.Layer List.State List.Level list.Transition Drawable.Inset Drawable.Clip Drawable.Scale Drawable.Sh

Android 中关于 【Cursor】 类的介绍

此博文转载自:http://www.cnblogs.com/TerryBlog/archive/2010/07/05/1771459.html 主讲Cursor的用法 使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿出来谈,加深自己和大家对Android 中使用 Cursor 的理解. 关于 Cursor 在你理解和使用 Android Cursor 的

Android中在sdcard上创建文件夹

//在SD卡上创建一个文件夹    public void createSDCardDir(){     if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){            // 创建一个文件夹对象,赋值为外部存储器的目录             File sdcardDir =Environment.getExternalStorageDirectory();           //得

Android中String资源文件的format方法

很多时候我们感性Google在设计Android时遵守了大量MVC架构方式,可以让写公共代码.美工和具体逻辑开发人员独立出来.有关Android 的资源文件values/strings.xml中如何实现格式化字符串呢? <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">stringdemo</string&