首先要添加权限
<!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
调用摄像头拍照
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, 1);
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated ActivityResult(requestCode, resultCode, data);//之所以用switch是因为用户可能还需要选择本地图片功能,我这里没有switch (requestCode) {case 1:Bundle bundle = Extras();bitmap = (Bitmap) ("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 ExternalStorageDirectory().getAbsolutePath(), "image");if (!ists()) {// 目录不存在 则创建appDir.mkdirs();}String fileName = System.currentTimeMillis() + ".jpg";File file = new File(appDir, fileName);try {FileOutputStream fos = new FileOutputStream(file);bitmappress(CompressFormat.JPEG, 100, fos); // 保存bitmap至本地fos.flush();fos.close();} catch (Exception e) {e.printStackTrace();} finally {ScannerByReceiver(context, AbsolutePath());if (!bitmap.isRecycled()) {// le(); 当存储大图片时,为避免出现OOM ,及时回收(); // 通知系统回收}// 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)));}
本文发布于:2024-01-31 05:03:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664859425740.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |