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
轉載于:https://www.cnblogs.com/yxwkf/p/3921293.html
總結
以上是生活随笔為你收集整理的AssetManager asset的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC 4 小项目开发总
- 下一篇: JavaScript大杂烩4 - 理解J