【转】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 @   Zane Young  阅读(390)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示