zoukankan      html  css  js  c++  java
  • 调用系统拍照

    调用系统拍照
    // 如果点击的是拍照按钮
    case R.id.btn_map_camera: {
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent, CAMERA_REQUESTCODE);
            }
                break;
    // 调用系统的方法,进入拍照界面
    
        /**
         * 回调和拍照功能
         */
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            try {
                switch (requestCode) {
                case CAMERA_REQUESTCODE:
                    if (resultCode == Activity.RESULT_OK && data != null) {
                        Bitmap image = (Bitmap) data.getExtras().get("data");
                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
                        image.compress(CompressFormat.JPEG, 100, bos);
                        byte[] imagebytes = bos.toByteArray();// 照片信息
    
            // 这里开始的第二部分,获取图片的路径:
            String[] proj = { MediaStore.Images.Media.DATA };
            // 好像是android多媒体数据库的封装接口,具体的看Android文档
            Cursor cursor = managedQuery(originalUri, proj, null, null, null);
            // 按我个人理解 这个是获得用户选择的图片的索引值
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            // 将光标移至开头 ,这个很重要,不小心很容易引起越界
            cursor.moveToFirst();
            // 最后根据索引值获取图片路径
            String path = cursor.getString(column_index);
            File f = new File(path);
            if(f.exists()){
            f.delete();
    
                        Bundle bundle = new Bundle();
                        bundle.putByteArray(CameraActivity.IMAGE_BUFFER, imagebytes);
                        Intent intent = new Intent();
                        intent.putExtras(bundle);
                        intent.setClass(MapActivity.this, CameraActivity.class);
                        startActivity(intent);
                    }
                    break;
                default:
                    break;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
  • 相关阅读:
    拯救者R720安装Ubuntu之后无法连接无线网络
    centos源码安装mysql5.7.25-boost
    mysql的报错
    Nginx配置文档
    centos6.5删除/boot后恢复
    Spring Boot 初体验(11)添加JSP支持
    Spring Boot 初体验(10)使用使用freemarker
    Spring Boot 初体验(9)使用thymeleaf
    Spring Boot 初体验(8)配置server信息
    Spring Boot 初体验(7)全局异常捕捉
  • 原文地址:https://www.cnblogs.com/jh5240/p/2676906.html
Copyright © 2011-2022 走看看