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();
            }
        }
  • 相关阅读:
    python环境搭建以及jupyter notebook的安装和启动
    Python base(三)
    Python base(二)
    Python base(一)
    python之装饰器
    python 内置函数 (二)
    函数的简单写法
    python中set的用法
    python在终端运行时增加一些效果
    序列化写到类里
  • 原文地址:https://www.cnblogs.com/jh5240/p/2676906.html
Copyright © 2011-2022 走看看