AssetManager asset的使用

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();

}

}

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

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

时间: 2025-01-06 10:04:33

AssetManager asset的使用的相关文章

No shutdown animation in the electricity display only 1%

低电量自动关机时无关机动画 低电量自动关机时无关机动画1. 问题描述2. 分析3. solution4. 总结 1. 问题描述 DEFECT DESCRIPTION: No shutdown animation in the electricity display only 1%. REPRODUCING PROCEDURES: 电量消耗显示只有1%时,手机突然黑屏关机,没有关机动画,长按power键后手机又可以正常开机使用.(黑屏关机后插上充电器,电量显示为1%) EXPECTED BEHAV

android项目中,数据库复制问题

============问题描述============ 用java io流复制后的sqlite3数据库文件,中文数据查询不出来,诸位是否遇到过这种问题,帮我解答一下 ============解决方案1============ private void dbImport()     {         try         {             File dir = new File(DATABASE_PATH);             // 如果/sdcard/testdb目录中存在

android 读取xml

在有些应用中,有一点小数据,直接存储在XML就是,实现较为简单, 1.xml文件放入asset文件夹,结构如: <?xml version="1.0" encoding="UTF-8" ?> <messages><message id="1"><title>3月毕业证数码像采集</title><date1>3</date1><content>3月12日

Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)

使用简单图片 使用Drawable对象 bitmap和BitmapDrawable对象 package peng.liu.test; import android.app.Activity; import android.content.res.AssetFileDescriptor; import android.content.res.AssetManager; import android.graphics.BitmapFactory; import android.graphics.dr

Android省市区三级联动滚轮选择(真实项目中提取出来的组件)

最近项目要做一个,类似淘宝手机客户端的,选择收货地址的三级联动滚动选择组件,下面是它的大致界面截图: 在IOS中有个叫UIPickerView的选择器,并且在dataSource中定义了UIPickerView的数据源和定制内容,所以用只要熟悉它的基本用法,要实现这么个三级联动滑动选择是挺简单的. 言归正传,今天讨论的是在Android里面如何来实现这么个效果,那么如何实现呢??? 相信部分童鞋首先想到的是android.widget.DatePicker和android.widget.Time

Android的xml/assets/raw资源使用具体解释

一.assets/xml/raw资源介绍 1.assets资源文件夹:assets文件夹下存放的资源代表应用无法直接訪问的原生资源,这些文件将原封不动的存储到设备上,不会被编译为二进制形式,訪问方式是通过文件名称而不是资源ID.应用程序通过AssetManager以的字节流的形式来读取资源文件.assets与res/raw的差别是assets支持随意深度的子文件夹.这些资源文件不会生成不论什么资源ID. Android应用訪问assets文件夹资源过程例如以下: (1)先在Activity中调用

Android的原始资源Raw和Assert资源的使用-android学习之旅(五十七)

代码示例 public class MainActivity extends Activity{ MediaPlayer mediaPlayer1,mediaPlayer2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayer1 = MediaPla

ListView下拉刷新、上拉载入更多之封装改进

在Android中ListView下拉刷新.上拉载入更多示例一文中,Maxwin兄给出的控件比较强大,前面有详细介绍,但是有个不足就是,里面使用了一些资源文件,包括图片,String,layout,这样不利于封装打包,下面我将源码进行改进,所有布局全部用代码实现,这样直接将src和assets打包成jar就成了一个非常方便以后使用的扩展ListView控件,代码如下: XListView: /** * @file XListView.java * @package me.maxwin.view

Android的xml/assets/raw资源使用详解

一.assets/xml/raw资源介绍 1.assets资源目录:assets目录下存放的资源代表应用无法直接访问的原生资源,这些文件将原封不动的存储到设备上,不会被编译为二进制形式,访问方式是通过文件名而不是资源ID.应用程序通过AssetManager以的字节流的形式来读取资源文件.assets与res/raw的区别是assets支持任意深度的子目录,这些资源文件不会生成任何资源ID.Android应用访问assets文件夹资源步骤如下: (1)先在Activity中调用getAssets