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;
// }
// }
[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;
// }
// }
相关文章推荐
- Android 开发 调用图库选择图片实现和参数详解
- ubuntu创建wifi热点(android可识别)亲测可用
- android分析windowManager、window、viewGroup之间关系
- Android 对话框(Dialog)【大全】
- Android中图片剪裁时如何预防oom
- android Button源码分析
- Android ListView嵌套Button,Button事件覆盖item事件解决办法
- android骚年的年终总结和规划
- Android ProgressBar 样式【大全】
- android 连按两次退出程序
- 在android 中导入项目后 包出现错误
- Android输入法界面管理(打开/关闭/状态获取)
- Android 布局分析
- Android 通过串口模拟 模拟物理按键
- Android的SharedPreferences存储
- android camera:输出数据流和裁剪
- android动画的ZAdjustment
- Android 通过Intent调用系统功能和Action动作和服务广播【大全】
- [ApiDemos] Activity CustomDialog
- android开源项目总结