Android assets 目录介绍和应用

Androidassets目录介绍和应用

说明:

1、文章转自:http://blog.toeach.net/2010/04/04/using-assets-in-android/

2、对原文的修改:增加注释,原英文已经翻译。

3、程序经过调试验证,运行正常。

4、原文题目:Using assets in Android

Android系统为每个新设计的程序提供了/assets目录,这个目录保存的文件可以打包在程序里。/res和/assets的不同点是,android不为/assets下的文件生成ID。如果使用/assets下的文件,需要指定文件的路径和文件名。下面这个例子,显示如何访问/assets下的内容。

<wbr><wbr> 在文件中/assets中建立/image子目录,将/res/drawable下的icon.png子目录拷贝到该目录中。在/assets子目录中建立readme.txt文件,文件中输入文本“hello,world!!!”。</wbr></wbr>

布局文件:main.xml

<?xml version="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

<wbr><wbr><wbr>android:orientation=<em>"vertical"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>android:layout_width=<em>"fill_parent"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>android:layout_height=<em>"fill_parent"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>&gt;</wbr></wbr></wbr>

<TextView<wbr></wbr>

<wbr><wbr><wbr>android:layout_width=<em>"fill_parent"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>android:layout_height=<em>"wrap_content"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>android:text=<em>"@string/hello"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>/&gt;</wbr></wbr></wbr>

<wbr><wbr><wbr>&lt;EditText android:id=<em>"@+id/firstId"</em></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>android:layout_width=<em>"fill_parent"</em></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr>android:layout_height=<em>"wrap_content"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>android:text=<em>"@string/hello"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>/&gt;</wbr></wbr></wbr>

<wbr><wbr><wbr>&lt;EditText android:id=<em>"@+id/secondId"</em></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>android:layout_width=<em>"fill_parent"</em></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr>android:layout_height=<em>"wrap_content"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>android:text=<em>"@string/hello"</em></wbr></wbr></wbr>

<wbr><wbr><wbr>/&gt;</wbr></wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr>

</LinearLayout>

<wbr></wbr>

程序文件:

package com.cn.getassets;

<wbr></wbr>

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;

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

public class GetAssets extendsActivity {

<wbr><strong>private</strong> EditTextfirstField;</wbr>

<wbr><strong>private</strong> EditTextsecondField;</wbr>

<wbr>@Override</wbr>

<wbr><strong>public void</strong>onCreate(Bundle savedInstanceState) {</wbr>

<wbr><strong>super</strong>.onCreate(savedInstanceState);</wbr>

//<wbr> Log.d("showmain.xml","<u>ok</u>");</wbr>

<wbr>setContentView(R.layout.<em>main</em>);</wbr>

<wbr> Log.<em>d</em>("showmain.xml","ok");</wbr>

<wbr> AssetManager assetManager =getAssets();</wbr>

<wbr> String[] files =<strong>null</strong>;</wbr>

<wbr><strong>try</strong> {</wbr>

<wbr><wbr> files =assetManager.list("image");</wbr></wbr>

<wbr> } <strong>catch</strong> (IOException e){</wbr>

<wbr><wbr>Log.<em>e</em>("tag", e.getMessage());</wbr></wbr>

<wbr> }</wbr>

<wbr> firstField = (EditText)findViewById(R.id.<em>firstId</em>);</wbr>

<wbr>firstField.setText(Integer.<em>toString</em>(files.length)+"file.Filename is"+ files[0]);</wbr>

<wbr> InputStream inputStream =<strong>null</strong>;</wbr>

<wbr><strong>try</strong> {</wbr>

<wbr><wbr> inputStream =assetManager.open("readme.txt");</wbr></wbr>

<wbr> } <strong>catch</strong> (IOException e){</wbr>

<wbr><wbr>Log.<em>e</em>("tag", e.getMessage());</wbr></wbr>

<wbr> }</wbr>

<wbr> String s =readTextFile(inputStream);</wbr>

<wbr> secondField = (EditText)findViewById(R.id.<em>secondId</em>);</wbr>

<wbr> secondField.setText(s);</wbr>

<wbr>}</wbr>

<wbr></wbr>

<wbr><strong>private</strong> StringreadTextFile(InputStream inputStream) {</wbr>

<wbr> ByteArrayOutputStreamoutputStream = <strong>new</strong> ByteArrayOutputStream();</wbr>

<wbr><strong>byte</strong> buf[] = <strong>newbyte</strong>[1024];</wbr>

<wbr><strong>int</strong> len;</wbr>

<wbr><strong>try</strong> {</wbr>

<wbr><wbr><strong>while</strong>((len = inputStream.read(buf)) != -1) {</wbr></wbr>

<wbr><wbr><wbr>outputStream.write(buf, 0, len);</wbr></wbr></wbr>

<wbr><wbr> }</wbr></wbr>

<wbr><wbr>outputStream.close();</wbr></wbr>

<wbr><wbr>inputStream.close();</wbr></wbr>

<wbr> } <strong>catch</strong> (IOException e){</wbr>

<wbr> }</wbr>

<wbr><strong>return</strong>outputStream.toString();</wbr>

<wbr>}</wbr>

}

程序显示结果:使用模拟器。

Android<wbr>assets<wbr>目录介绍和应用


转:http://blog.sina.com.cn/s/blog_6cf0d3f30100m2x6.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值