AssetManager asset的使用

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://javaforall.net/118407.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月6日 下午3:00
下一篇 2021年12月6日 下午4:00


相关推荐

  • 离线包简介

    离线包简介传统的 H5 技术容易受到网络环境影响 因而降低 H5 页面的性能 通过使用离线包 可以解决该问题 同时保留 H5 的优点 离线包 是将包括 HTML JavaScript CSS 等页面内静态资源打包到一个压缩包内 预先下载该离线包到本地 然后通过客户端打开 直接从本地加载离线包 从而最大程度地摆脱网络环境对 H5 页面的影响 使用 H5 离线包可以给您带来以下优势 提升用户体验 通过离线包的方式把页面内静态资源嵌入到应用中并发布 当用户第一次开启应用的时候 就无需依赖网络环境下载该资源 而是

    2026年3月17日
    2
  • Mybatis配置文件头

    Mybatis配置文件头Mybatis 配置文件头 mapping 映射文件头 xmlversion 1 0 encoding UTF 8 DOCTYPE apperPUBLIC mybatis org DTDMapper3 0 EN http mybatis org dtd mybatis 3 mapper dtd configure 配置文件头 xmlversion 1 0 encoding UTF 8 lt

    2026年3月18日
    2
  • java递归结束条件_方法递归必须有结束条件

    java递归结束条件_方法递归必须有结束条件需求:希望递归结束后去更新UI界面。那什么时候才是递归结束呢。网上有人去判断一个固定参数,然后结束,简直莫名其妙,这个固定参数居然是随便乱取的,不科学。思路:根据判断i=0,收集size的值。通过i=0,收集到循环的长度,因为每个循环都有i=0的时候,而且都只有唯一一个,根据num能收集到循环总长度。代码:for(inti=0;i<((List)data).size()

    2026年1月18日
    5
  • JS设置定时器和清除定时器

    JS设置定时器和清除定时器JS 设置定时器和清除定时器 nbsp nbsp 在做项目中难免会碰到需要实时刷新 动画依次出现等等需求 这时候就需要定时器登上我们的代码舞台了 所以今天我们就先来了解一下 JS 定时器的设置和清除吧 一 启用定时器 nbsp nbsp window 对象提供了两个方法来实现定时器的效果 分别是 window setTimeout 和 window setInterval 其中前者可以使一段代码在指定时间后运行 而后者则可以使一

    2026年3月19日
    2
  • 让 Claude Code 使用 Kimi K2 模型:手把手教你获取Kimi K2 API Key教程

    让 Claude Code 使用 Kimi K2 模型:手把手教你获取Kimi K2 API Key教程

    2026年3月16日
    2
  • python读取文件夹下所有图片文件_python删除某一列

    python读取文件夹下所有图片文件_python删除某一列具体实现步骤功能需求读取一个文件夹中的所有图片,并将图像数据存储在一个文件中。说明对于本程序中的实现,图片文件夹与python文件应在图一个目录中。如上图所示,楼主的face.py为读文件夹中所有文件的代码。file中存放的是多张图片。这两个文件都在根目录下,你也可以将他们两个放在其他的目录下,若不放在同一个目录下,则需要修改代码,才能运行成功。第一步:导入库代码为:import…

    2025年10月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号