Android中资产管理器AssetManager的使用

本文介绍Android开发中assets文件夹的应用场景,包括初始化数据导入、图片资源集成等,并提供从assets中读取文本和图片的具体实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看着这个题目是不是很熟悉,没错,今天学习的就是assets文件夹下资源的一些使用方式。

1.sssets目录下放置的内容

  • 大批量的初始化数据,需要在APP第一次安装时导入数据库。因为res/values目录下方的是键值对数据(如key-value),难以转换为数据库中存储的关系型数据。
  • 工程源码要导出为JAR包,作为一个SDK给其他工程使用。因为res目录无法集成到jar包中,所以待集成的图片资源不可放在res目录。
  • 如网页HTML这种需要保持原有格式的文件,不适合放在res目录中进行编译。
  • 其余无法被Android系统识别的文件格式,如电子书的pdf、epub、djvu等等。

2.创建assets目录的位置

src/main目录下新建assets目录。

3.获取AssetManager对象方法

调用getAssets方法可获得AssetManager对象。

4.AssetManager相关方法

  • list:列出指定目录下的文件与文件夹列表数组。
  • open:打开资产文件,返回输入流InputStream对象。访问模式默认是AssetManager.ACCESS_STREAMING,表示流式访问,即顺序读取。
  • close:关闭资产管理器。

5.从assets文件夹获取文字字符串示例

    /**
     * 从asset资产文件中获取文本字符串
     * @param context
     * @param fileName
     * @return
     */
    public static String getTxtFormAssets(Context context,String fileName){
        String result = "";

        try {
            InputStream is = context.getAssets().open(fileName);
            int lenght = is.available();
            byte[] buffer = new byte[lenght];
            is.read(buffer);
            result = new String(buffer,"utf8");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }

6.从assets文件夹获取图片示例

    /**
     * 从asset资产文件中获取位图对象
     * @param context
     * @param fileName
     * @return
     */
    public static Bitmap getImgFromAssets(Context context,String fileName){
        Bitmap bitmap = null;
        try {
            InputStream is = context.getAssets().open(fileName);
            bitmap = BitmapFactory.decodeStream(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return bitmap;
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值