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

Android开发 调用照相机实现代码和注意事项

2016-01-06 23:16 555 查看
准备工作:设置 调用相机的回调码 和 设置 调用照相机拍照后保存图片的位置,名称,及后缀名(图片类型)

[java] view
plaincopy





private int xiangji=3;

rivate File sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");

在button监听器中调用相机:

[java] view
plaincopy





//调用系统照相机拍照

bt4.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

Uri u=Uri.fromFile(sdcardTempFile);

intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);

intent.putExtra(MediaStore.EXTRA_OUTPUT, u);

intent.putExtra("return-data", true);

startActivityForResult(intent, xiangji);

}

});

[java] view
plaincopy





回调函数中接收图片:

[java] view
plaincopy





@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

System.out.println("requestCode"+requestCode);

switch (requestCode){

case 2:

Uri tuku_uri = data.getData();

System.out.println(tuku_uri.getPath());

ContentResolver tuku_cr = this.getContentResolver();

try {

bmp = BitmapFactory.decodeStream(tuku_cr.openInputStream(tuku_uri));

MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

break;

case 3:

try {

Uri xiangji_uri = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), sdcardTempFile.getAbsolutePath(), null, null));

System.out.println(xiangji_uri.getPath());

ContentResolver xiangji_cr = this.getContentResolver();

bmp = BitmapFactory.decodeStream(xiangji_cr.openInputStream(xiangji_uri));

MCShareLaunchShareHelper.shareContentWithBitmap("测试照相机图片", bmp, "your share url", "", MoxunActivity.this);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//方法二

//if (requestCode == MyApp.CAMERA_RECODE) {

// try {

// bmp=BitmapFactory.decodeFile(sdcardTempFile.getAbsolutePath());

// img.setImageBitmap(bmp);

// picCount++;

// } catch (Exception e) {

// e.printStackTrace();

// }

//

// break;

// }

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