android之使用原始资源

原创 2013年12月04日 10:45:29

android中没有提供专门支持的文件 叫原始资源文件。android原始资源一般放在/res/raw目录和/assets/目录下;在assets目录下的文件通过AssetMananger来管理,它提供了几个常用的方法来访问Assets资源

InputStream open(String fileName):根据文件名来获取原始资源对应的输入流;

AssetFileDescriptor   openFd(String fileName):根据文件名来获取原始资源对应的AssetFileDescriptor  资源描述,应用程序可以通过它来获取原始资源

package com.android.xiong.rawrestest;

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.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button bt1, bt2;
	MediaPlayer mediaPlayer1 = null;
	MediaPlayer mediaPlayer2 = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt1 = (Button) findViewById(R.id.bt1);
		bt2 = (Button) findViewById(R.id.bt2);
		// 直接根据声音文件的ID来创建MediaPlayer
		mediaPlayer1 = MediaPlayer.create(this, R.raw.bomb);
		// 获取该应用的AssetManager
		AssetManager am = this.getAssets();
		try {
			// 获取指定文件对应的AssetFileDescriptor
			AssetFileDescriptor afd = am.openFd("shot.mp3");
			mediaPlayer2 = new MediaPlayer();
			// 使用MediaPlayer加载指定的声音文件
			mediaPlayer2.setDataSource(afd.getFileDescriptor());
			mediaPlayer2.prepare();
		} catch (Exception e) {
			e.printStackTrace();
		}
		bt1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 播放声音
				mediaPlayer1.start();
			}
		});
		bt2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 播放声音
				mediaPlayer2.start();
				

			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <Button 
        android:id="@+id/bt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="播放1"/>
    <Button 
        android:id="@+id/bt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/bt1"
        android:text="播放2"/>


</RelativeLayout>


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android开发之assets目录下资源使用总结

因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们。那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.a...

使用AssetFileDescriptor 来读取(android)app的raw文件夹下的数据

//mp是MediaPlayer实例对象,fd是读取raw文件夹下的文件信息类try { AssetFileDescriptor fd = getResources().openRawResouce...

Android中读取assets目录下的文件详细介绍

前言Android 中资源分为两种,一种是res下可编译的资源文件, 这种资源文件系统会在R.java里面自动生成该资源文件的ID,访问也很简单,只需要调用R.XXX.id即可;第二种就是放在asse...
  • Greathfs
  • Greathfs
  • 2016年08月04日 22:46
  • 50677

资源—— 读取assets目录下的文件详细介绍

Android 中资源分为两种,一种是res下可编译的资源文件, 这种资源文件系统会在R.Java里面自动生成该资源文件的ID,访问也很简单,只需要调用R.XXX.id即可;第二种就是放在assets...

Android 手机间的文件传送(socket手机做服务端和客户端进行)

Android 手机间的文件传送(socket手机做服务端和客户端进行)前几天需要写个android局域网通讯,首先就是想到的就是socket通讯了,不说了开始吧。 在这里,由于我们需要的是在局域网...

H5 使用 canvas 压缩并上传文件到Web服务器

这几天要搞图片上传到服务器,折腾了好久终究是搞定了,现在分享给大家,也顺便记录下,毕竟不是做前端的.... html js 展示选择的图片在网页上,并上传服务器 function prvI...

初学Android,使用原始资源(二十三)

原始资源就是Android没有为之提供专门支持的资源文件,可以放在如下两个位置/res/raw Android SDK会在R清单类中为该目录下的资源生成一个索引项/res/assets 需要通过Ass...
  • lee576
  • lee576
  • 2012年08月09日 17:09
  • 2892

Android实战技巧:使用原始资源文件

背景知识介绍 与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/xml, /res/...

Android读取资源文件——读取原始Xml内容和使用Menu文件

一、使用原始XML①在res下创建一个文件夹xml,里面创建一个test.xml的资源文件 ...

android之使用原始资源

Android中没有提供专门支持的文件 叫原始资源文件。android原始资源一般放在/res/raw目录和/assets/目录下;在assets目录下的文件通过AssetMananger来管理,它提...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android之使用原始资源
举报原因:
原因补充:

(最多只允许输入30个字)