天天看點

Android基礎篇 通路Assets檔案夾裡面的資源【文本、圖檔、音頻、字型包】

一、建立Assest檔案夾

直接把資源複制粘貼到該檔案夾下
Android基礎篇 通路Assets檔案夾裡面的資源【文本、圖檔、音頻、字型包】

(1)擷取Assets檔案夾的管理類

(2)周遊檔案夾下的資源清單

(3)通路Assets的絕對路徑

二、擷取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檔案夾下的字型資源

Android基礎篇 通路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))));
   }
 }