android如何浏览并选择图片 音频 视频

这几天 在学习并开发android系统的图片浏览 音频 视频 的浏览 由于是第一次做android系统(java也不会)
遇到了很多问题 如何浏览并选择图片 音频 视频也花了我好几天的时间
我把它整理处理 以便帮助和我一样的同学 也同时防备自己忘记
<1> 选择按钮的代码
  // 选取图片按钮单击事件
public void click_xuanqutupian(View source) {
  Intent intent = new Intent();
  /* 开启Pictures画面Type设定为image */
  intent.setType("image/*");
  //intent.setType("audio/*"); //选择音频
  //intent.setType("video/*"); //选择视频 (mp4 3gp 是android支持的视频格式)
  //intent.setType("video/*;image/*");//同时选择视频和图片
  
  
  /* 使用Intent.ACTION_GET_CONTENT这个Action */
  intent.setAction(Intent.ACTION_GET_CONTENT);
  /* 取得相片后返回本画面 */
  startActivityForResult(intent, 1);
  }
<2> 取得选择的项 以后 处理的地方
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // 选取图片的返回值
  if (requestCode == 1) {
   //
   if (resultCode == RESULT_OK) {
    Uri uri = data.getData();
    Cursor cursor = getContentResolver().query(uri, null, null,
      null, null);
    cursor.moveToFirst();
    // String imgNo = cursor.getString(0); // 图片编号
    imgPath = cursor.getString(1); // 图片文件路径
    String imgSize = cursor.getString(2); // 图片大小
    String imgName = cursor.getString(3); // 图片文件名
    fileName = imgName;
    fileSize = imgSize;
    // Log.e("uri", uri.toString());
    ContentResolver cr = this.getContentResolver();
    try {
     Bitmap bitmap = BitmapFactory.decodeStream(cr
       .openInputStream(uri));
     ImageView imageView = (ImageView) findViewById(R.id.imview);
     /* 将Bitmap设定到ImageView */
     imageView.setImageBitmap(bitmap);
    } catch (FileNotFoundException e) {
     // Log.e("Exception", e.getMessage(),e);
    }
   }
  }
  // 拍照的返回值
  if (requestCode == 2) {
   if (resultCode == RESULT_OK) {
    //
    imgPath = data.getStringExtra("filePath");
    fileName = data.getStringExtra("fileName");
    fileSize = data.getStringExtra("fileSize");
    // 读取拍照所得的文件
    try {
     Bitmap bitmap = this.getLoacalBitmap(imgPath);
     ImageView imageView = (ImageView) findViewById(R.id.imview);
     imageView.setImageBitmap(bitmap);
    } catch (Exception e) {
     // TODO: handle exception
    }
    //
   }
  }
  super.onActivityResult(requestCode, resultCode, data);
}
posted @   与时俱进  阅读(6962)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2011-03-06 js拖动窗口 用层模拟可移动的小窗口
2011-03-06 javascript数组操作大全,数组方法总汇,速记
2011-03-06 offsetTop,clientX,clientTop,clientWidth,offsetWidth 坐标,一次弄明白
2011-03-06 ID 为 333 的事件被添加到基于 Windows Server 2003 的计算机上的系统日志中的补丁下载地址
2011-03-06 关于iis HTTPERR日志
2011-03-06 “WinMgmt.exe产生了错误,将会被Windows关闭,需要重新启动程序”的错误提示解决方法
2010-03-06 精通ASP.NET中弹出窗口技术
友情链接:同里老宅院民居客栈
点击右上角即可分享
微信分享提示