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();
            }
        }
  • 相关阅读:
    Java8简明教程(转载)
    Android开源代码分享
    Android关联源码support-v4的问题解决
    自定义控件的自定义的属性attrs.xml下的declare-styleable中format详解
    获得 LayoutInflater 实例的三种方式
    退出telnet
    Relay log read failure
    MySQL --log-slave-updates
    MySQL --slave-skip-errors
    MySQL 5.1.63 单机配置多实例(简单配置)
  • 原文地址:https://www.cnblogs.com/jh5240/p/2676906.html
Copyright © 2011-2022 走看看