自:http://abc20899.iteye.com/blog/1096620
1。获取资源的输入流
资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过
Context.getAssets().open(“sample.txt”)
方法获取输入流。
注意:如果资源文件是文本文件则需要考虑文件的编码和换行符。建议使用UTF-8和Unix换行符。
2. WebView 加载assets目录下的html文件
资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以下代码
WebView.loadUrl(“file:///android_asset/sample.html”);
加载html文件。
Android 系统为每个新设计的程序提供了/assets目录,这个目录保存的文件可以打包在程序里。/res 和/assets的不同点是,android不为/assets下的文件生成ID。如果使用/assets下的文件,需要指定文件的路径和文件名。下面这个例子,显示如何访问/assets下的内容。
在文件中/assets 中建立/image子目录,将/res/drawable下的icon.png子目录拷贝到该目录中。在/assets子目录中建立readme.txt文件,文件中输入文本“hello,world!!!”。
布局文件:main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<EditText android:id="@+id/firstId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<EditText android:id="@+id/secondId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
程序文件:
package com.cn.getassets;
import android.app.Activity;
import android.os.Bundle;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
public class GetAssets extends Activity {
private EditText firstField;
private EditText secondField;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Log.d("show main.xml","ok");
setContentView(R.layout.main);
Log.d("show main.xml","ok");
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("image");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
firstField = (EditText) findViewById(R.id.firstId);
firstField.setText(Integer.toString(files.length)+"file.File name is"+ files[0]);
InputStream inputStream = null;
try {
inputStream = assetManager.open("readme.txt");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
String s = readTextFile(inputStream);
secondField = (EditText) findViewById(R.id.secondId);
secondField.setText(s);
}
private String readTextFile(InputStream inputStream) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte buf[] = new byte[1024];
int len;
try {
while ((len = inputStream.read(buf)) != -1) {
outputStream.write(buf, 0, len);
}
outputStream.close();
inputStream.close();
} catch (IOException e) {
}
return outputStream.toString();
}
}
分享到:
相关推荐
在Android开发中,有时我们需要在应用内部存储一些资源文件,如音频、文本或图片,而`assets`文件夹就是用于存放这些非编译型资源的一个特殊目录。在本例中,我们将探讨如何从`assets`文件夹中读取音频文件,并提供...
综上所述,Android应用中读取assets目录下的图片并显示需要经过获取AssetManager引用、列出子文件、读取解码图片、设置ImageView以及正确管理资源等多个步骤。通过理解这些步骤,开发者可以灵活地处理应用内部的图片...
本篇文章将详细介绍如何在Android应用程序中从assets目录下获取ini文件的内容,并实现对指定内容的读取。 首先,让我们了解一下Android项目的assets目录。这是一个特殊的位置,允许开发者放置任何静态资源文件,...
Android开发实现读取assets目录下db文件的方法示例 Android开发中,读取assets目录下db文件是一个常见的操作,特别是在开发基于SQLite数据库的应用程序时。下面我们将详细介绍Android开发实现读取assets目录下db...
有时,我们可能需要在应用程序启动时预先填充一些数据,这时可以将预置的数据库文件放入`assets`目录下,然后在程序运行时读取并加载。本文将详细介绍如何在Android中从`assets`目录读取数据库,并进行相关操作。 ...
这些文件通常存储在项目的`assets`目录下,因为它们不是Android资源系统的一部分,但仍然需要在运行时访问。本篇文章将深入讲解如何在Android应用中读取`assets`目录下的文件。 首先,让我们理解`assets`目录的作用...
而要读取assets文件夹中的文件,可以使用AssetManager类。例如,要读取一个图片资源,可以使用AssetManager.open()方法。 在Android中,还有一个非常重要的类就是R类。R类是一个自动生成的类,用于存放资源的ID。...
- 读取assets目录下的txt文件需要使用`AssetManager`: ```java AssetManager assetManager = getAssets(); InputStream is = null; try { is = assetManager.open("filename.txt"); } catch (IOException e...
读取Assets文件通常需要使用`AssetManager`类。首先,你需要通过`getAssets()`方法从`Context`对象中获取`AssetManager`实例。然后,可以调用`AssetManager`的`open()`或`openFd()`方法来打开文件。例如: ```java ...
在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些... 介绍如何读取assets文件夹的资源。
本示例“android读取raw和assets下资源文件demo”旨在教你如何在Android应用中有效地读取并处理存储在`res/raw`和`assets`目录下的资源文件。 一、res/raw目录 `res/raw`目录是Android资源系统的一部分,它允许...
在这种场景下,Android提供了`Assets`目录,用于存放这些非编译型资源。本教程将详细介绍如何读取`Assets`中的资源文件,并进行JSON解析。 首先,让我们理解什么是`Assets`目录。在Android工程的`src/main`目录下,...
有了`AssetManager`后,可以使用它来打开并读取assets目录下的文件: ```java InputStream inputStream = null; try { inputStream = assetManager.open("file_name"); } catch (IOException e) { e....
目的:当App中用到固定的json数据时,如:国家城市列表、班级成员等时,可以将json数据制作为本地json文件存入assets文件夹下。... // 获得assets资源管理器(assets中的文件无法直接访问,可以使用AssetManager访问
首先,`assets`目录是Android工程中的一个特殊目录,它不在编译后的APK的主资源目录下,而是用于存放应用的非代码静态资源,如文本文件、图片、数据库等。在构建过程中,这些资源会被原封不动地打包到APK中,因此在...
- **创建assets文件夹**:首先,在项目的`src/main`目录下创建一个名为`assets`的文件夹(如果不存在的话)。将所有文本文件放入此文件夹。 - **获取AssetManager**:在需要访问assets文件的地方,首先要获取`...
在Android应用开发中,`assets`和`res/raw`目录都是用来存储应用程序资源的重要部分,但它们之间存在一些关键区别。这两个目录都有各自的用途和访问方式,开发者需要根据实际需求来选择合适的存放位置。 首先,我们...
Unity Android StreamingAssets读图片和读文本事例
这篇教程主要聚焦于如何从assets文件夹下读取并解析XML资源文件。assets文件夹是Android项目中的一个特殊目录,用于存储应用程序运行时需要的任意文件,如数据文件、配置文件或者非标准格式的资源。 首先,让我们...
1. **访问Assets资源** 在Android中,`AssetManager`是一个系统服务,用于读取应用程序的assets目录。获取AssetManager实例的方法是通过Activity的`getAssets()`方法。例如: ```java AssetManager assetManager ...