android studio开发(android res和asset等特殊文件夹 )

*res/raw和assets的相同点:

1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

*res/raw和assets的不同点:

1.res/raw中的文件会被映射到R.Java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

*读取文件资源:

1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

InputStream is = getResources().openRawResource(R.id.filename); 

2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作

AssetManager am =null; 
am = getAssets(); 
InputStream is = am.open("filename"); 

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


附带

res文件夹里面的多个文件夹的各自介绍(来自网上的Android开发指南中文版内容):

目录Directory

资源类型Resource Types

res/anim/

XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象


res/drawable/

.png、.9.png、.jpg文件,它们被编译进以下的Drawable资源子类型中:

要获得这种类型的一个资源,可以使用Resource.getDrawable(id)

位图文件

9-patches(可变尺寸的位图)

为了获取资源类型,使用mContext.getResources().getDrawable(R.drawable.imageId)

注意:放在这里的图像资源可能会被aapt工具自动地进行无损压缩优化。比如,一个真彩色但并不需要256色的PNG可能会被转换为一个带调色板的8位PNG。这使得同等质量的图片占用更少的资源。所以我们得意识到这些放在该目录下的二进制图像在生成时可能会发生变化。如果你想读取一个图像位流并转换成一个位图(bitmap),请把图像文件放在res/raw/目录下,这样可以避免被自动优化。


res/layout/

被编译为屏幕布局(或屏幕的一部分)的XML文件。参见布局声明(Declaring Layout)


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()获取这些资源。getText()会保留在UI字符串上应用的丰富的文本样式。


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

res/xml/

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

res/raw/

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

Android的Vector Asset Studio是一个用于创建和管理矢量图标的工具。它可以帮助开发者在应用程序中使用矢量图标,而无需担心图标在不同屏幕密度下的模糊或失真问题。 要使用Vector Asset Studio,首先需要打开Android Studio,并确保已经创建了一个Android项目。然后,按照以下步骤进行操作: 1. 在Android Studio的项目视图中,右键单击res文件夹,选择"New" -> "Vector Asset"。 2. 在弹出的向导中,选择要导入的矢量图标类型。可以选择从Material Design图标库中导入,也可以选择从本地文件系统导入。 3. 如果选择从Material Design图标库导入,可以在搜索框中输入关键字来查找所需的图标。选择图标后,可以预览并调整其大小和颜色。 4. 如果选择从本地文件系统导入,可以点击"Local file"按钮,然后选择要导入的SVG或者AI文件。导入后,可以预览并调整其大小和颜色。 5. 在预览窗口中,可以通过调整大小和颜色来自定义图标。还可以选择生成的资源类型(如Drawable或Mipmap)以及目标密度。 6. 完成自定义后,点击"Next"按钮,然后选择要生成的资源文件夹和文件名。点击"Finish"按钮完成导入过程。 完成上述步骤后,Android Studio将自动生成相应的矢量图标资源文件,并将其添加到项目中。可以在布局文件或代码中使用这些矢量图标资源,就像使用其他Drawable资源一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值