您的位置:首页 > 移动开发 > Android开发

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

2016-06-17 11:25 363 查看
    

     //从图库选图的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);

    

   }

  }

 }

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android笔记