您的位置:首页 > 移动开发 > Android开发

android原始资源raw和assets文件读取

2015-02-13 11:29 405 查看
原始资源就是Android没有为之提供专门支持的资源文件,可以放在如下两个位置

/res/raw Android SDK会在R清单类中为该目录下的资源生成一个索引项

/res/assets 需要通过AssetManager来管理该目录下的原始资源

下面写个Demo,往两个目录下各放一个mp3文件,一个叫one,一个叫two(都是黄小琥的音乐,可惜文件名不能是中文)



主界面main.xml代码如下

package WangLi.Resouce.RawResTest;

import java.io.IOException;

import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class RawResTest extends Activity {
/** Called when the activity is first created. */
MediaPlayer mediaPlayer1 = null;
MediaPlayer mediaPlayer2 = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//直接根据声音文件的ID来创建MediaPlayer
mediaPlayer1 = MediaPlayer.create(this,R.raw.two);
//获取该应用的AssetManager
AssetManager am = getAssets();
try
{
//获取指定文件对应的AssetFileDescriptor
AssetFileDescriptor afd = am.openFd("one.mp3");
mediaPlayer2 = new MediaPlayer();
//使用MediaPlayer加载指定的声音文件
mediaPlayer2.setDataSource(afd.getFileDescriptor());
mediaPlayer2.prepare();
}
catch(IOException e)
{
e.printStackTrace();
}
//获取第一个按钮,并为它绑定事件监听器
Button playRaw = (Button)findViewById(R.id.button1);
playRaw.setOnClickListener(new OnClickListener(){
public void onClick(View arg0)
{
//播放声音
mediaPlayer1.start();
}
});
//获取第二个按钮,并为它绑定事件监听器
Button playAsset = (Button)findViewById(R.id.button2);
playAsset.setOnClickListener(new OnClickListener(){
public void onClick(View arg0)
{
mediaPlayer2.start();
}
});
}
}
界面如下图,两个按钮,一个访问Asset下的文件,一个访问raw下的文件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: