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();
            }
        }
  • 相关阅读:
    hyper虚拟机下对centos进行动态扩容
    《C#高级编程第七版》多线程之Events
    借鉴StanZhai核心代码,写了个博客园采集器
    文档转换之PDF转换为HTML
    书香电子书下载地址分析器
    c#常用类库及资源
    iis7.5 配置伪静态
    根据枚举类型获取描述
    从客户端检测到有潜在危险的Request.Form值
    Sql行列转换
  • 原文地址:https://www.cnblogs.com/jh5240/p/2676906.html
Copyright © 2011-2022 走看看