`
tansitongba
  • 浏览: 503632 次
文章分类
社区版块
存档分类
最新评论

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


分享到:
评论

相关推荐

    android 将assets 下的文件复制到手机内存中

    首先,`assets`目录是Android应用中的一个特殊目录,它允许开发者存放非编译型的资源文件,这些文件在应用运行时可以通过AssetManager访问。与`res`目录不同,`res`目录下的文件会被编译进APK并有特定的资源ID,而`...

    Android Assets文件和Raw文件读取

    在Android应用开发中,Assets和Raw文件夹是两个重要的资源存储区域,用于存放非编译的、原始的数据文件。这两个目录都有各自的用途和特点,开发者可以根据需求选择合适的存储位置。 **Android Assets文件** Assets...

    android的assets下的sql文件操作

    总之,Android应用可以利用`assets`目录存储预置的SQLite数据库文件,通过`SQLiteOpenHelper`进行管理和操作。在实现查询和删除功能时,应遵循Android的最佳实践,确保代码的稳定性和性能。同时,别忘了处理可能出现...

    Android 从assets中获取ini文件内容

    本篇文章将详细介绍如何在Android应用程序中从assets目录下获取ini文件的内容,并实现对指定内容的读取。 首先,让我们了解一下Android项目的assets目录。这是一个特殊的位置,允许开发者放置任何静态资源文件,...

    android:assets下的文件复制到SD卡

    `android:assets`是Android应用中一个特殊的目录,用于存放非编译的原始数据,不包括在编译后的APK中的R类中。这个目录下的文件在运行时可以通过AssetManager访问。 以下是对`android:assets`下文件复制到SD卡的...

    DexClassLoader自定义加载Assets目录下的dex、jar文件

    总结一下,DexClassLoader在Android开发中扮演着动态加载额外类库的角色,特别是在处理Assets目录下的.dex和.jar文件时。通过正确配置和使用,我们可以灵活地扩展应用的功能,同时避免方法数过多的问题。在实践中,...

    Android 加载assets文件夹的文本文件 图片

    本篇文章将详细探讨如何在Android应用中加载`assets`文件夹内的文本文件和图片。 1. **加载assets中的文本文件** - **创建assets文件夹**:首先,在项目的`src/main`目录下创建一个名为`assets`的文件夹(如果不...

    android 从assets获取图片

    本文将详细介绍如何在Android应用程序中从`assets`文件夹获取图片,并对代码进行深入解析。 #### 一、Assets 文件夹简介 `assets`文件夹是Android项目中的一个特殊文件夹,用于存放原始数据文件。与`res`文件夹...

    Android assets 和 res/raw 区别。读取本地网页,读取文本字体样式,读取视频。

    在Android应用开发中,`assets`和`res/raw`目录都是用来存储应用程序资源的重要部分,但它们之间存在一些关键区别。这两个目录都有各自的用途和访问方式,开发者需要根据实际需求来选择合适的存放位置。 首先,我们...

    Android将assets中的zip压缩文件解压到SD卡

    Android SDK提供了解压缩ZIP文件的工具类`ZipFile`和`InputStream`。以下是一个简单的解压流程: 1. 打开`assets`目录下的ZIP文件: ```java AssetManager assetManager = getAssets(); InputStream is = null; ...

    android 读取 assets 文件夹下的音频

    在Android开发中,有时我们需要在应用内部存储一些资源文件,如音频、文本或图片,而`assets`文件夹就是用于存放这些非编译型资源的一个特殊目录。在本例中,我们将探讨如何从`assets`文件夹中读取音频文件,并提供...

    android 更新文件

    assets目录是放置应用资源的一个特殊位置,不同于res目录,它不支持编译和打包为R类,而是保持文件的原始形式,便于进行动态更新。 在描述中提到的"OLUpdateFilesByHimi.zip"可能是一个包含更新文件的压缩包,这种...

    android获取assets内容

    本文将详细介绍如何在Android应用中获取`assets`目录中的内容,以及如何将它们复制到本地存储,并计算文件大小。 首先,让我们理解`assets`目录的基本用法。在Android项目的`src/main`目录下,有一个名为`assets`的...

    Assets 资源, 放在 assets 目录下

    通过学习这些内容,开发者可以更好地理解如何在Android应用中有效地利用`assets`目录存储和访问非结构化或自定义格式的数据。 总结一下,`assets`目录在Android开发中用于存储不会被编译处理的原始资源文件,通过`...

    android 文件读取(assets)

    在Android开发中,`assets`目录是一个特殊的地方...通过以上知识,我们可以更好地理解和利用Android的`assets`目录,有效地管理应用程序中的非结构化数据。在实际开发中,正确使用`assets`能为应用带来灵活性和便利性。

    android的assets下的文件保存到sd卡

    标题"android的assets下的文件保存到sd卡"涉及到的就是这样一个场景,即如何将Android应用中`assets`目录下的文件保存到SD卡上。`assets`目录是Android项目中用于存放非编译型资源的一个特殊位置,它可以包含任意...

    从assets目录复制文件夹和文件,(不只是文件,附demo)

    这篇博客"从assets目录复制文件夹和文件,(不只是文件,附demo)"详细介绍了如何实现这一过程,并提供了一个实际的示例项目`CopyAssetsFolderDemo`。 首先,`assets`目录是Android工程中的一个特殊目录,用于存放...

    Android读取assets目录下的所有图片并显示的方法

    这篇文章将详细介绍如何在Android应用中读取assets目录下的所有图片并显示。 首先,我们需要理解assets目录的工作原理。assets目录中的文件不会被编译进APK的资源表,因此不能像R.drawable中的资源那样通过ID直接...

    Android Studio下添加assets目录的实现方法

    在Android Studio中添加assets目录主要涉及到Android项目结构和Android资源管理两部分知识。下面将详细介绍与之相关的知识点。 首先,Android项目中assets目录的作用及存放的内容。assets目录用来存放不会被编译到...

    Android 读取raw、assets中的txt文件

    在Android应用开发中,...总之,Android开发者可以通过`Resources`和`AssetManager`接口读取raw和assets目录下的txt文件,这为在应用中集成文本数据提供了便利。理解这些操作对于创建功能丰富的Android应用至关重要。

Global site tag (gtag.js) - Google Analytics