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

准备工作:设置 调用相机的回调码 和 设置 调用照相机拍照后保存图片的位置,名称,及后缀名(图片类型)

	private int xiangji=3;
private  File sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");


在button监听器中调用相机:

	//调用系统照相机拍照
		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); 

			}
		});

回调函数中接收图片:

@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;
//    		}
//    }

    } 




  • 28
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值