Android原始资源的使用

来源:互联网 发布:淘宝开放平台api 申请 编辑:程序博客网 时间:2024/06/04 18:23

除了各种Xml文件、图片文件之外,Android应用可能还需要用到大量其他类型的资源,比如声音资源等,类似的各种文件,只要Android没有为其提供专门的支持,这种资源都叫做原始资源,原始资源可以放在两个地方:

(1)/res/raw目录下

(2)/assets目录下,该目录下的资源是更彻底的原始资源,通过AssetManager来管理。

AssetManager使用两种方式来访问Assets资源:

InputStream open(String fileName)

AssetFileDecriptor openFd(String fileName)   AssetFileDecriptor代表一项原始资源的描述。

示例代码:

public class RawResTest extends Activity{MediaPlayer mediaPlayer1 = null;MediaPlayer mediaPlayer2 = null;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 直接根据声音文件的ID来创建MediaPlayer。mediaPlayer1 = MediaPlayer.create(this, R.raw.bomb);// 获取该应用的AssetManagerAssetManager am = getAssets();try{// 获取指定文件对应的AssetFileDescriptor。AssetFileDescriptor afd = am.openFd("shot.mp3");mediaPlayer2 = new MediaPlayer();// 使用MediaPlayer加载指定的声音文件。mediaPlayer2.setDataSource(afd.getFileDescriptor());mediaPlayer2.prepare();}catch (IOException e){e.printStackTrace();}// 获取第一个按钮,并为它绑定事件监听器Button playRaw = (Button) findViewById(R.id.playRaw);playRaw.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// 播放声音mediaPlayer1.start();}});// 获取第二个按钮,并为它绑定事件监听器Button playAsset = (Button) findViewById(R.id.playAsset);playAsset.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// 播放声音mediaPlayer2.start();}});}}