Xamarin.Android 如何使用Assets目录下的文件

时间:2023-12-12 14:48:32

原文:Xamarin.Android 如何使用Assets目录下的文件

个人原创,转载注明出处:http://blog.csdn.net/supluo/article/details/43672411

Xamarin.Android  官网介绍地址:http://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/

这里插入一下Assets与Raw目录的异同点

这两个目录的相同点:

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

2、这两个目录下的文件都是只读的。

不同点:

      1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。

2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

Assets使得我们可以在程序中包含任意的文本、xml、音乐、视频等文件,这就好比为程序内设一些资源以供使用。更改程序字体就会在这个目录下放置一些预设置的字体文件。

一、Xamarin.Android中如何打开Assets中的文件

1、设置文件生成操作方式为AndroidAsset。(对着文件右键,弹出菜单中选择属性,即可看到生成方式一栏)。

由于有些开发者使用的是破解工具,并且版本都比较低,因此新增加的文件可能并不是这个方式,因此这一点需要注意,否则这个可能成为一个非常折磨人的问题。通过从其他地方复制而来的文件的生成方式也可能不是上述生成方式。

2、在代码中使用,假如现在Assets目录下保存了一个名为"read_asset.text"的文件

    var tv = new TextView (this);
// Read the contents of our asset
string content;
using (StreamReader sr = new StreamReader (Assets.Open ("read_asset.txt")))
{
content = sr.ReadToEnd ();
}
// Set TextView.Text to our asset content
tv.Text = content;
SetContentView (tv);

上述代码变可以以流的形式读取文本中的内容,Assets.Open的第二个参数可以指定检索数据的方式。

个人搞了个博客App,平时上个厕所,睡觉前等随便看两篇文章,总能有些收获,希望大家支持!http://blog.csdn.net/supluo/article/details/43489475

版权声明:本文为博主原创文章,未经博主允许不得转载。