android 调用CAMERA并获取照片

本文介绍了一种在Android应用中实现图片选择和拍照功能的方法。通过使用Intent启动系统默认的图片选择器或相机应用,并处理返回的数据来展示所选图片或拍摄的照片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

case R.id.openPhoto:
                        Intent intent = new Intent();
                        /* 开启Pictures画面Type设定为image */
                        intent.setType("image/*");
                        /* 使用Intent.ACTION_GET_CONTENT这个Action */
                        intent.setAction(Intent.ACTION_GET_CONTENT);
                        /* 取得相片后返回本画面 */
                        startActivityForResult(intent, 1);
                        REQUEST_CAMERA =0;
                        break;
                case R.id.camera:
                        Intent getImageByCamera = new Intent(
                                        "android.media.action.IMAGE_CAPTURE");
                        startActivityForResult(getImageByCamera,REQUEST_CAMERA);
                        REQUEST_CAMERA =1;
                        break;
                default:
                        break;
                }
        }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode == KeyEvent.KEYCODE_BACK){
                startActivity(new Intent(ImagePageActivity.this,OrderMsgActivity.class));
                ImagePageActivity.this.finish();
        }
        return super.onKeyDown(keyCode, event);
}
@Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (REQUEST_CAMERA == 0) {  
        Uri uri = data.getData();  
//        Log.e("uri", uri.toString());  
        ContentResolver cr = this.getContentResolver();  
        try {  
            Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));  
            /* 将Bitmap设定到ImageView */  
            imageView.setImageBitmap(bitmap);  
        } catch (FileNotFoundException e) {  
//            Log.e("Exception", e.getMessage(),e);  
        }  
    }else if (REQUEST_CAMERA == 1){  
                       Bitmap myBitmap = null;
                                try  
                      {  
                  super.onActivityResult(requestCode, resultCode, data);  
                    Bundle extras = data.getExtras();  
                            myBitmap = (Bitmap) extras.get("data");  
                            ByteArrayOutputStream baos = new ByteArrayOutputStream();  
                   myBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);  
                 byte[] mContent = baos.toByteArray();  
              } catch ( Exception e )  
                        {  
                e.printStackTrace();  
                       }  
               // 把得到的图片绑定在控件上显示  
                                imageView.setImageBitmap(myBitmap);//把拍摄的照片转成圆角显示在预览控件
    }
    super.onActivityResult(requestCode, resultCode, data); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值