Android Assets

Assets

assets文件夹位置及建立

AndroidStudio中assets文件夹位置:main文件夹下,名称:assets
在Android Studio建立assets文件夹:右键模块—>New—>Folder—->Assets Folder

访问assets里面的文件
AssetManager assetManager=context.getAssets() ;

//获取assets目录下的所有文件及目录名:
String fileNames[] =assetManager.list(path);

//返回的是一个InputSteam类型的字节流
//这里的filename必须是文件比如:aa.txt或者img/semll.jpg,而不能是文件夹
InputStream in=assetManager.open(String filename);
将assets下的文件复制到SD卡
/**  
 *  从assets目录中复制整个文件夹内容  
 *  @param  context  Context 使用CopyFiles类的Activity 
 *  @param  oldPath  String  原文件路径  如:/aa  
 *  @param  newPath  String  复制后路径  如:xx:/bb/cc  
 */   
public void copyFilesFassets(Context context,String oldPath,String newPath) {                   
        try {  
       String fileNames[] = context.getAssets().list(oldPath);//获取assets目录下的所有文件及目录名  
       if (fileNames.length > 0) {//如果是目录  
           File file = new File(newPath);  
           file.mkdirs();//如果文件夹不存在,则递归  
           for (String fileName : fileNames) {  
              copyFilesFassets(context,oldPath + "/" + fileName,newPath+"/"+fileName);  
           }  
       } else {//如果是文件  
           InputStream is = context.getAssets().open(oldPath);  
           FileOutputStream fos = new FileOutputStream(new File(newPath));  
           byte[] buffer = new byte[1024];  
           int byteCount=0;                 
           while((byteCount=is.read(buffer))!=-1) {//循环从输入流读取 buffer字节          
               fos.write(buffer, 0, byteCount);//将读取的输入流写入到输出流  
           }  
           fos.flush();//刷新缓冲区  
           is.close();  
           fos.close();  
       }  
   } catch (Exception e) {  
       // TODO Auto-generated catch block  
       e.printStackTrace();  
       //如果捕捉到错误则通知UI线程  
                  MainActivity.handler.sendEmptyMessage(COPY_FALSE);  
   }                             
}  
使用assets目录下的图片资源
InputStream is=getAssets().open("wpics/0ZR424L-0.jpg");  
Bitmap bitmap=BitmapFactory.decodeStream(is);  
imgShow.setImageBitmap(bitmap);  
播放assets目录下的音乐
首先,获取通过openFd()的方法获取asset目录下指定文件的AssetFileDescriptor对象。
其次,通过MediaPlayer对象的setDataSource (FileDescriptorfd, longoffset, long length)方法加载音乐文件。
最后,调用prepare方法准备音乐,start方法开始播放音乐。



// 打开指定音乐文件,获取assets目录下指定文件的AssetFileDescriptor对象  
AssetFileDescriptor afd = am.openFd(music);  
mPlayer.reset();  
// 使用MediaPlayer加载指定的声音文件。  
mPlayer.setDataSource(afd.getFileDescriptor(),  
    afd.getStartOffset(), afd.getLength());  
// 准备声音  
mPlayer.prepare();  
// 播放  
mPlayer.start(); 
加载assets目录下的网页
//加载assets/htmls/目录下的index.html网页

webView.loadUrl("file:///android_asset/htmls/index.html");
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值