//读取本地res中的图片 public static Bitmap readBitmap(int resid){ BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; //获取资源图片 InputStream input = getResources().openRawResource(resid); return BitmapFactory.decodeStream(input,null,opt); } //确定不再需要该bitmap对象的时候可以将其回收掉 public static void recycle(Bitmap bitmap){ if(bitmap!=null && !bitmap.isRecycle()){ bitmap.recycle(); System.gc();//提醒系统及时回收 } }
二:放在assets中的图片(只读)
InputStream is = context.getResources().getAssets().open("icon.png"); Bitmap bitmap = BitmapFactory.decodeStream(is); [color=red]三:读取sd卡中的图片[/color] Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/icon.png"); [color=red]四:读取网络图片[/color] public static Bitmap loadImageFromUrl(String urlStr){ URL url; InputStream i = null; try{ m = new URL(urlStr); i = m.getContent(); }catch(Exception e){ e.printStaceTrace(); } return BitmapFactory.decodeStream(i); }
五:音频播放
1.raw文件里的播放
MediaPlayer mMediaPlayer = MediaPlayer.create(this,R.raw.level02_bg_music); private void playMusic() { new Thread(new Runnable() { @Override public void run() { if(mMediaPlayer != null) { mMediaPlayer.start(); mMediaPlayer.setLooping(true); } } }).start(); }
2.播放本地或者网络文件
MediaPlayer mMediaPlayer = new MediaPlayer(); private void playMusic(String path) { try { if(mMediaPlayer!= null){ //一定要清空播放器资源 mMediaPlayer.stop(); mMediaPlayer.release(); mMediaPlayer = null ; } /* 重置MediaPlayer */ mMediaPlayer.reset(); /* 设置要播放的文件的路径 */ mMediaPlayer.setDataSource(path); /* 准备播放 */ mMediaPlayer.prepare(); /* 开始播放 */ mMediaPlayer.start(); mMediaPlayer.setLooping(true); mMediaPlayer.setOnCompletionListener(new OnCompletionListener() { public void onCompletion(MediaPlayer arg0) { //播放完成一首之后进行下一首 // nextMusic(); } }); }catch (Exception e){ e.printStackTrace(); } }
MediaPlayer:
此类适合播放较大文件,此类文件应该存储在SD卡上,而不是在资源文件里,还有此类每次只能播放一个音频文件。
此类用法如下:
1、从资源文件中播放
MediaPlayer player = new MediaPlayer.create(this,R.raw.test); player.stare();
2、从文件系统播放
MediaPlayer player = new MediaPlayer(); String path = "/sdcard/test.mp3"; player.setDataSource(path); player.prepare(); player.start();
3、从网络播放
(1)通过URI的方式:
String path="http://**************.mp3"; //这里给一个歌曲的网络地址就行了 Uri uri = Uri.parse(path); MediaPlayer player = new MediaPlayer.create(this,uri); player.start();
(2)通过设置数据源的方式:
MediaPlayer player = new MediaPlayer.create(); String path="http://**************.mp3"; //这里给一个歌曲的网络地址就行了 player.setDataSource(path); player.prepare(); player.start();
[/size]