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目录下db文件的方法,结合实例形式分析了Android针对assets目录下SQLite数据库文件的相关操作技巧,需要的朋友可以参考下
主要介绍了读写Android中assets目录下的文件的方法详解,assets和res/raw工程目录下都可以放一些文件,这些文件将被打包到APK中应用使用,需要的朋友可以参考下
在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些...介绍如何读取assets文件夹的资源。
在工程目录assets下的文件,将目录下的文件复制到手机内存或者SD卡内存中。
Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552
我开始尝试把视频文件放到 assets文件目录下。 因为之前写webview加载assets文件夹时,是这样写的: webView = new WebView(this); webView.loadUrl(file:///android_asset/sample3_8.html); 依次类推,我尝试将...
很多时候我们需要将资源文件以XML形式放在assets文件夹下,我写的这个demo是一个比较通用的获取xml输入流,解析xml获取想要数据的方法,希望对大家有帮助。
android读取raw和assets下资源文件demo,运行ok,供快速掌握读取R.raw.**或者保存在assets下的文件的内容
主要介绍了Android开发之资源目录assets与res/raw的区别,结合实例形式分析了Android开发中资源目录assets与res/raw的具体功能、使用方法与区别,需要的朋友可以参考下
Android Ndk: 如何从native层直接获取 assets文件夹下的文件-附件资源
anim获取资源(Assets,anim,drawable)
最近有这样一个需求:A应用在一定条件下出发某个逻辑后,需要从B应用中获取一些资源(assets下的mp4视频、还有drawable下的一些图片用作背景),具体需求就不说啦哈哈,用一张图来表示应该更明白: A和B应用其实是1...
本文为大家详细介绍下android读取Assets图片资源保存到SD卡的具体实现,感兴趣的各位可以参考下哈,希望对大家有所帮助
根据本地Assets目录下资源名称,获取String数据信息 根据本地Assets目录下资源名称,获取List集合信息 根据本地Raw目录下资源标识,获取String数据信息 根据本地Raw目录下资源标识,获取List集合信息 根据资源名获得...
Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx....
集成自动打包脚本可以在发布Release版本时,自动获取服务器上的最新WebApp版本并预置到assets目录下,以Plugin形式提供。 接入方式如下: 在主module的build.gradle中加入 apply plugin: '...