Android基础篇 访问Assets文件夹里面的资源【文本、图片、音频、字体包】

本文详细介绍了如何在Android应用中操作Assets文件夹,包括创建、读取文本、加载网页、图片和音频,以及使用字体资源。通过AssetManager,可以方便地访问Assets内的文本、图片、音频文件,并展示了读取文本、设置图片、播放音频及加载自定义字体的方法。
摘要由CSDN通过智能技术生成

一、创建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))));
   }
 }
要在Unity中加载StreamingAssets文件夹里的多个音频文件,你可以使用`Directory.GetFiles`方法获取StreamingAssets文件夹下的所有音频文件路径,然后逐个加载它们。下面是一个示例代码: ```csharp using UnityEngine; using System.IO; public class AudioLoader : MonoBehaviour { private AudioSource audioSource; public string audioFolderPath; // StreamingAssets文件夹下的音频文件夹路径 private void Start() { audioSource = GetComponent<AudioSource>(); string streamingAssetsPath = Application.streamingAssetsPath; string audioFolderFullPath = Path.Combine(streamingAssetsPath, audioFolderPath); LoadAudioFromFolder(audioFolderFullPath); } private void LoadAudioFromFolder(string folderPath) { string[] audioFiles = Directory.GetFiles(folderPath, "*.mp3"); foreach (string audioFile in audioFiles) { string audioFilePath = "file://" + audioFile; StartCoroutine(LoadAudioClipFromFile(audioFilePath)); } } private IEnumerator LoadAudioClipFromFile(string filePath) { using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(filePath, AudioType.MPEG)) { yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.LogError("Failed to load audio: " + www.error); } else { AudioClip audioClip = DownloadHandlerAudioClip.GetContent(www); audioSource.clip = audioClip; audioSource.Play(); // 等待音频播放完成 yield return new WaitForSeconds(audioClip.length); } } } } ``` 这段代码首先获取一个`AudioSource`组件,然后使用`Application.streamingAssetsPath`获取StreamingAssets文件夹的路径。接着,使用`Path.Combine`方法将音频文件夹路径和StreamingAssets路径结合起来获取完整的音频文件夹路径。然后,使用`Directory.GetFiles`方法获取该文件夹下所有以`.mp3`为扩展名的音频文件路径。在加载每个音频文件时,我们使用`UnityWebRequest`从文件路径加载音频文件,并使用`DownloadHandlerAudioClip.GetContent`获取`AudioClip`。最后,使用`AudioSource.Play`方法播放音频文件,并使用`yield return new WaitForSeconds(audioClip.length)`等待音频播放完成。 请将`audioFolderPath`替换为你实际的StreamingAssets文件夹下的音频文件夹路径。确保音频文件夹位于StreamingAssets文件夹中,并且音频文件的扩展名为`.mp3`。也可以根据实际情况调整加载音频的方法(例如使用其他方式加载StreamingAssets中的文件)并进行适当的错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

其子昱舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值