• 调用android系统相机拍照并保存


    [java] view plaincopyprint?

     
    1. <span style="font-size:18px;">package com.demo;  
    2.   
    3. import java.io.BufferedOutputStream;  
    4. import java.io.File;  
    5. import java.io.FileNotFoundException;  
    6. import java.io.FileOutputStream;  
    7. import java.io.IOException;  
    8. import java.util.Calendar;  
    9. import java.util.Locale;  
    10.   
    11. import android.app.Activity;  
    12. import android.content.Intent;  
    13. import android.graphics.Bitmap;  
    14. import android.os.Bundle;  
    15. import android.os.Environment;  
    16. import android.provider.MediaStore;  
    17. import android.text.format.DateFormat;  
    18. import android.util.Log;  
    19. import android.view.View;  
    20. import android.view.View.OnClickListener;  
    21. import android.widget.Button;  
    22. import android.widget.ImageView;  
    23. import android.widget.Toast;  
    24.   
    25. public class MyCameraActivity extends Activity {  
    26.     /** Called when the activity is first created. */  
    27.     private Button button;  
    28.   
    29.     @Override  
    30.     public void onCreate(Bundle savedInstanceState) {  
    31.         super.onCreate(savedInstanceState);  
    32.         setContentView(R.layout.main);  
    33.         button = (Button) findViewById(R.id.button);  
    34.         button.setOnClickListener(new OnClickListener() {  
    35.   
    36.             @Override  
    37.             public void onClick(View v) {  
    38.                 // TODO Auto-generated method stub  
    39.                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
    40.   
    41.                 startActivityForResult(intent, 1);  
    42.             }  
    43.         });  
    44.     }  
    45.   
    46.     @Override  
    47.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    48.         // TODO Auto-generated method stub  
    49.         super.onActivityResult(requestCode, resultCode, data);  
    50.         if (resultCode == Activity.RESULT_OK) {  
    51.             String sdStatus = Environment.getExternalStorageState();  
    52.             if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用  
    53.                 Log.i("TestFile",  
    54.                         "SD card is not avaiable/writeable right now.");  
    55.                 return;  
    56.             }  
    57.             String name = new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".jpg";     
    58.             Toast.makeText(this, name, Toast.LENGTH_LONG).show();  
    59.             Bundle bundle = data.getExtras();  
    60.             Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式  
    61.           
    62.             FileOutputStream b = null;  
    63.            //???????????????????????????????为什么不能直接保存在系统相册位置呢????????????  
    64.             File file = new File("/sdcard/myImage/");  
    65.             file.mkdirs();// 创建文件夹  
    66.             String fileName = "/sdcard/myImage/"+name;  
    67.   
    68.             try {  
    69.                 b = new FileOutputStream(fileName);  
    70.                 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件  
    71.             } catch (FileNotFoundException e) {  
    72.                 e.printStackTrace();  
    73.             } finally {  
    74.                 try {  
    75.                     b.flush();  
    76.                     b.close();  
    77.                 } catch (IOException e) {  
    78.                     e.printStackTrace();  
    79.                 }  
    80.             }  
    81.             ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// 将图片显示在ImageView里  
    82.         }  
    83.     }  
    84. }  
    85. </span>  
     
  • 相关阅读:
    总结前端笔面试遇到的问题——HTML部分
    js中的克隆方法
    js操作cookie
    JS中4种常见的内存泄漏
    html、css、js三者的加载顺序
    js中object定义的几种方法
    关于settimeout的面试题
    css各种居中解决方法
    JS实现继承的几种方式
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/xgjblog/p/4193472.html
Copyright © 2020-2023  润新知