记一下点击图片跳转到手机拍照或图库页面

    

     //从图库选图的intent
    Intent i1 = new Intent(Intent.ACTION_PICK);
    i1.setDataAndType(Images.Media.EXTERNAL_CONTENT_URI, "image/*");
    
    //从相机拍照的intent
    Intent i2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    File camerFile = new File(file,System.currentTimeMillis()+".jpg");
    Uri value = Uri.fromFile(camerFile);
    i2.putExtra(MediaStore.EXTRA_OUTPUT, value);
    
    //把俩个intent“凑成”一个intent发送
    Intent intent = Intent.createChooser(i1, "选择头像");
    intent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{i2});
    //把凑成的intent发送出去
    startActivityForResult(intent, 100);

     

      @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==100 && resultCode==RESULT_OK){
    if(data==null){
    //拍照返回的
    }else{
    //图库选择返回的
    //content://media/XXXX
    Uri uri = data.getData();
    ivAvatar.setImageURI(uri);
    //要找到uri对应的文件在SD卡上的绝对路径
    //ContentResolver去数据库查询
    ContentResolver cr = getContentResolver();
    Cursor c = cr.query(uri, new String[]{Images.Media.DATA}, null, null, null);
    c.moveToNext();
    path = c.getString(0);
    c.close();
    Log.d("TAG", "uri:-->"+uri.toString()+", 绝对路径:-->"+path);
    
   }
  }
 }

   




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值