首先要添加权限

     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

调用摄像头拍照

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                startActivityForResult(intent, 1);
@Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        // TODO Auto-generated method stub        super.onActivityResult(requestCode, resultCode, data);        //之所以用switch是因为用户可能还需要选择本地图片功能,我这里没有        switch (requestCode) {        case 1:            Bundle bundle = data.getExtras();            bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式            saveImageToGallery(this, bitmap);//存储            sign();            try {                view.setImageBitmap(bitmap);// 将图片显示在ImageView里            } catch (Exception e) {                System.out.println("请拍照");            }             break;        default:            break;        }    }
public static void saveImageToGallery(Context context, Bitmap bitmap) {        File appDir = new File(Environment.getExternalStorageDirectory()                .getAbsolutePath(), "image");        if (!appDir.exists()) {            // 目录不存在 则创建            appDir.mkdirs();        }        String fileName = System.currentTimeMillis() + ".jpg";        File file = new File(appDir, fileName);        try {            FileOutputStream fos = new FileOutputStream(file);            bitmap.compress(CompressFormat.JPEG, 100, fos); // 保存bitmap至本地            fos.flush();            fos.close();        } catch (Exception e) {            e.printStackTrace();        } finally {            ScannerByReceiver(context, file.getAbsolutePath());            if (!bitmap.isRecycled()) {                // bitmap.recycle(); 当存储大图片时,为避免出现OOM ,及时回收Bitmap                System.gc(); // 通知系统回收            }            // Toast.makeText(context, "图片保存成功" ,            // Toast.LENGTH_SHORT).show();        }    }    /** Receiver扫描更新图库图片 **/    private static void ScannerByReceiver(Context context, String path) {        context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,                Uri.parse("file://" + path)));    }

更多相关文章

  1. android 运用AsyncTask 获取图片并显示
  2. Android:ListView数据异步加载、Handler、AsyncTask
  3. Android ListView组合CheckBox实现多选获取数据
  4. android中网络图片的显示
  5. Android 图片相关
  6. android 图片点击一下就放大到全屏,再点一下就回到原界面
  7. Android图片压缩、加水印
  8. Android获取网页上的图片的代码

随机推荐

  1. Terraform,状态文件的最终归宿
  2. K8S v1.18.x 部署-Kubeadm方式-9:部署Addo
  3. K8S v1.18.x 部署-Kubeadm方式-8:部署Addo
  4. Terraform,基本语法
  5. 多厂商***系列之十四:H3C_***+实验【4个企
  6. K8S v1.18.x 部署-Kubeadm方式-3:部署工具
  7. 多厂商***系列之十三:***综合实验分享
  8. 停止争论:ITIL v4、SRE和DevOps助力数字化
  9. 多厂商***系列之十二:ASA Dynamic site-to
  10. Terraform,变量详解