1. <span style="font-size:18px;">package com.demo;
  2. import java.io.BufferedOutputStream;
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.util.Calendar;
  8. import java.util.Locale;
  9. import android.app.Activity;
  10. import android.content.Intent;
  11. import android.graphics.Bitmap;
  12. import android.os.Bundle;
  13. import android.os.Environment;
  14. import android.provider.MediaStore;
  15. import android.text.format.DateFormat;
  16. import android.util.Log;
  17. import android.view.View;
  18. import android.view.View.OnClickListener;
  19. import android.widget.Button;
  20. import android.widget.ImageView;
  21. import android.widget.Toast;
  22. public class MyCameraActivity extends Activity {
  23. /** Called when the activity is first created. */
  24. private Button button;
  25. @Override
  26. public void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.main);
  29. button = (Button) findViewById(R.id.button);
  30. button.setOnClickListener(new OnClickListener() {
  31. @Override
  32. public void onClick(View v) {
  33. // TODO Auto-generated method stub
  34. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  35. startActivityForResult(intent, 1);
  36. }
  37. });
  38. }
  39. @Override
  40. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  41. // TODO Auto-generated method stub
  42. super.onActivityResult(requestCode, resultCode, data);
  43. if (resultCode == Activity.RESULT_OK) {
  44. String sdStatus = Environment.getExternalStorageState();
  45. if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
  46. Log.i("TestFile",
  47. "SD card is not avaiable/writeable right now.");
  48. return;
  49. }
  50. String name = new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".jpg";
  51. Toast.makeText(this, name, Toast.LENGTH_LONG).show();
  52. Bundle bundle = data.getExtras();
  53. Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
  54. FileOutputStream b = null;
  55. //???????????????????????????????为什么不能直接保存在系统相册位置呢????????????
  56. File file = new File("/sdcard/myImage/");
  57. file.mkdirs();// 创建文件夹
  58. String fileName = "/sdcard/myImage/"+name;
  59. try {
  60. b = new FileOutputStream(fileName);
  61. bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件
  62. } catch (FileNotFoundException e) {
  63. e.printStackTrace();
  64. } finally {
  65. try {
  66. b.flush();
  67. b.close();
  68. } catch (IOException e) {
  69. e.printStackTrace();
  70. }
  71. }
  72. ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// 将图片显示在ImageView里
  73. }
  74. }
  75. }
  76. </span>
 

调用android系统相机拍照并保存的更多相关文章

  1. android调用系统相机拍照并保存在本地

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  2. 调用系统相机拍照,保存照片,调用系统裁剪API对照片处理,显示裁剪之后的照片

    package com.pingyijinren.test; import android.annotation.TargetApi; import android.app.Notification; ...

  3. Android下载图片/调用系统相机拍照、显示并保存到本地

    package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...

  4. Android 调用系统相机拍照保存以及调用系统相册的方法

    系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new ...

  5. 【踩坑速记】MIUI系统BUG,调用系统相机拍照可能会带给你的一系列坑,将拍照适配方案进行到底!

    一.写在前面 前几天也是分享了一些学习必备干货(还没关注的,赶紧入坑:传送门),也好久没有与大家探讨技术方案了,心里也是挺痒痒的,这不,一有点闲暇之时,就迫不及待把最近测出来的坑分享给大家. 提起An ...

  6. Android7.0调用系统相机拍照、读取系统相册照片+CropImageView剪裁照片

    Android手机拍照.剪裁,并非那么简单 简书地址:[我的简书–T9的第三个三角] 前言 项目中,基本都有用户自定义头像或自定义背景的功能,实现方法一般都是调用系统相机–拍照,或者系统相册–选择照片 ...

  7. Android 调起系统相机拍照

    概述 最近在看 nanChen 写的图片选择器 ImagePicker,感觉写得很不错,也打算把从中学到的东西写下来.很多时候,遇到一个好的框架能够降低开发成本这是好事.但是也要去了解其内部具体实现逻 ...

  8. Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. 正常情况下调用系统相机拍照: 如果拍照后点击的是“确定”图标,返回的resultCode = -1(Activity.RESULT_OK): 如果 ...

  9. Android调用系统相机拍照保存照片很小解决方案

    保存图片小的一般操作步骤: 1. 调用系统相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityFo ...

随机推荐

  1. 在vue中使用sass

    首先安装node-sass和sass-loader cnpm install node-sass && sass-loader --save 在webpack.config.js 的m ...

  2. Docker 常用命令总结

    Docker 常用命令总结   回到顶部 镜像相关 搜索 docker search *image_name* 下载 docker pull *image_name* 查看 docker images ...

  3. idea如何设置类头注释和方法注释(带注释模板)

    1.idea类注释 打开:file->setting->Editor->Filr and Code Templates->Includes->File Header 类注 ...

  4. HDU4305 Lightning

    There are N robots standing on the ground (Don't know why. Don't know how). Suddenly the sky turns i ...

  5. error C2275 将此类型用作表达式非法

    http://blog.csdn.net/lqk1985/article/details/7389159 C2275: “size_t”: 将此类型用作表达式非法,同时还导致一堆变量未定义的bug. ...

  6. android的动态代码

    1,Android代码设置Shape,corners,Gradient  (http://blog.csdn.net/houshunwei/article/details/17392409) int ...

  7. Java平台下的gitignore文件

    *.bak*.txt*.vm.gitignore#svn.svn/# built application files*.apk*.ap_ # files for the dex VM*.dex # J ...

  8. 更新到xcode10以后出现几个无奈的问题,谨已此篇告诫广大ioser升级请慎重

    1.第一次用xcode 10 archive的时候遇到的电脑卡死不动的问题,期间鼠标键盘通通都动不了,只能强制关机来解决,于是又进行了一次可还是遇到相同的问题,无奈之下只能等待,大约20分钟左右(20 ...

  9. Vue中this.$router.push参数获取

    传递参数的方法:1.Params 由于动态路由也是传递params的,所以在 this.$router.push() 方法中path不能和params一起使用,否则params将无效.需要用name来 ...

  10. http协议中connection头的作用

    在http1.1中request和reponse header中都有可能出现一个connection的头,此header的含义是当client和server通信时对于长链接如何进行处理.   在htt ...