一、创建Assest文件夹

直接把资源复制粘贴到该文件夹下

在这里插入图片描述
(1)获取Assets文件夹的管理类

AssetManager assets = getAssets();

(2)遍历文件夹下的资源列表

String[] list = assets.list();

(3)访问Assets的绝对路径

file:///android_asset

二、获取Assets文件夹的文本

AssetManager am = getAssets();

try{
	//"penlaoxi.txt" 资源文本名称以及后缀
	InputStream open = am.open("penlaoxi.txt");
	byte b[] = new byte[1024];
	int len = 0;
	StringBuffer sb = new StringBuffer();
	//字符串为-1 表示为空
	while((len = open.read(b)) != -1){
	sb.append(new String(b,0,len));
   }
   //输出文本信息 sb.toString()
   Log.d("TAG",sb.toString());
}catch(IOException e){
	e.printStackTrace();
}

三、获取Assets文件夹下的网页

String url = getAssets() + "/xxxx.html";

String url = "file:///android_asset/xxxx.html";

四、获取Assets文件夹下的图片


AssetManager am = getAssets();
InputStream inputStream = null;

try{
	//"penglaoxi.jpg" 图片资源名称
	inputStream = am.open("penglaoxi.jpg");
}catch(IOException e){
	e.printStackTrace();
}

//bitmap 就是一张图片 将inputstream 转换成一张图片
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
//设置图片为bitmap  imageView:替换成你想要的控件显示,或者以bitmap缓存到本地都行,结果在bitmap当中
imageView.setImageBitmap(bitmap );

五、获取Assets文件夹下的音频

try{
//获取MP3的资源文件
AssetFileDescriptor mp = getAssets().openFd("penglaoxi.mp3");
//实例化播放器对象
MediaPlayer player = new MediaPlayer();
//设置资源
player.setDataSource(mp.getFileDescriptor(),mp.getStartOffset().mp.getLength());
//准备播放器
player.prepare();
//开始播放
player.start();
}catch(IOException e){
e.printStackTrace();
}

五、获取Assets文件夹下的字体资源

在这里插入图片描述

 for (int i = 0; i < 7; i++) {
   if (i == 0) {
   	  //默认第一项加载默认字体
      this.fonts.add(Typeface.DEFAULT);
   } else {
      // 其余项加载保存的字体包
      // Typeface.createFromAsset(资源路径,资源包名称);
      // String.format("fonts/font_%02d.TTF", Integer.valueOf(i))
      // "fonts/font_%02d.TTF" 资源包名称
      // font_%02d 中的  " %02d " 替换 Integer.valueOf(i) 
      // Integer.valueOf(i) == 0 时, 表示 fonts/font_00.TTF 
      // Integer.valueOf(i) == 1 时, 表示 fonts/font_01.TTF 
      // Integer.valueOf(i) == 2 时, 表示 fonts/font_02.TTF 
      this.fonts.add(Typeface.createFromAsset(context.getAssets(), String.format("fonts/font_%02d.TTF", Integer.valueOf(i))));
   }
 }
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐