• Android扩展


    1.调用系统摄像头

      1.声明常量和变量

      2.按钮点击事件,打开系统摄像头

      3.重写onActivityResult事件接收拍照返回

      4.生成文件名返回路径

      5.保存图片

    [java] view plaincopy
     
    1. private static final int TAKE_PICTURE = 1;  
    2.   
    3. class btnGotoActivity02Listener implements OnClickListener {  
    4.   public void onClick(View v) {  
    5.     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //调用摄像头拍照  
    6.     startActivityForResult(intent, TAKE_PICTURE);  
    7.   }  
    8. }  
    9.   
    10. @Override  
    11. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    12.   String filename = "";  
    13.   try {  
    14.     if (resultCode == Activity.RESULT_OK && requestCode == TAKE_PICTURE) {  
    15.       Bundle bundle = data.getExtras();  
    16.       Bitmap bmp = (Bitmap)bundle.get("data");  
    17.       filename = saveImage(bmp);  
    18.     }  
    19.   } catch (Exception err) {  
    20.     Log.e("Exception", err.getLocalizedMessage());  
    21.   }  
    22. }  
    23.   
    24. public String buildFileName(){  
    25.   Date now = new Date();  
    26.   SimpleDateFormat formater = new SimpleDateFormat("yyMMdd_HHmmss");  
    27.   
    28.   String SDCARD = Environment.getExternalStorageDirectory() + "/";  
    29.   String basePath = SDCARD + "dier/photo/";  
    30.   
    31.   File dir = new File(basePath);  
    32.   dir.mkdirs();  
    33.     
    34.   return basePath + formater.format(now) + ".jpg";  
    35. }  
    36.   
    37. public String saveImage(Bitmap bmp) throws Exception {  
    38.   File file = new File(buildFileName());  
    39.   file.createNewFile();  
    40.   FileOutputStream oStream = new FileOutputStream(file);  
    41.   bmp.compress(Bitmap.CompressFormat.JPEG, 100, oStream); //100是照片质量,0-100,越大越好  
    42.   oStream.flush();  
    43.   oStream.close();  
    44.   return file.getPath();  
    45. }  


     
    2.保存完整分辨率的照片

      使用上面的方法,保存下来的图片仅为原图的1/4大小,如果需要保存大照片则需要使用下面的方式

      缺点:此方法除了在指定的目录下保存图片外,在系统拍照路径下也会保存下一张相同的图片。

    [java] view plaincopy
     
      1. private static final int TAKE_PICTURE = 1;  
      2. private String TEMP_FILE = "";  
      3.   
      4. class btnGotoActivity02Listener implements OnClickListener {  
      5.   public void onClick(View v) {  
      6.     TEMP_FILE = buildFileName();  
      7.     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //调用摄像头拍照  
      8.     intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(TEMP_FILE))); //另存图片地址  
      9.     startActivityForResult(intent, TAKE_PICTURE);  
      10.   }  
      11. }  
      12.   
      13. public String buildFileName(){  
      14.   Date now = new Date();  
      15.   SimpleDateFormat formater = new SimpleDateFormat("yyMMdd_HHmmss");  
      16.   
      17.   String SDCARD = Environment.getExternalStorageDirectory() + "/";  
      18.   String basePath = SDCARD + "dier/photo/";  
      19.   
      20.   File dir = new File(basePath);  
      21.   dir.mkdirs();  
      22.     
      23.   return basePath + formater.format(now) + ".jpg";  
      24. }  
      25.   
      26. @Override  
      27. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
      28.   String filename = "";  
      29.   try {  
      30.     if (resultCode == Activity.RESULT_OK && requestCode == TAKE_PICTURE) {  
      31.       File file = new File(TEMP_FILE);  
      32.       if(file.exists()){  
      33.         filename = file.getPath();  
      34.         Toast.makeText(MainActivity.this, "图片已保存在:" + filename, 3000).show();  
      35.       }  
      36.       else {  
      37.         Toast.makeText(MainActivity.this, "亲,我实在无能为力啊,你是用啥程序照的相片?", 5000).show();  
      38.       }  
      39.     }  
      40.   } catch (Exception err) {  
      41.     Log.e("Exception", err.getLocalizedMessage());  
      42.   }  
      43. }  

    http://blog.csdn.net/dier4836/article/details/7364721

  • 相关阅读:
    SQL Server 2008 Windows身份验证改为混合模式身份验证
    SQL中给datetime类型变量赋值
    结婚三周年特此@Mark一下
    搞笑的【国庆出游五大注意事项】
    利用SVNListParentPath增加http浏览仓库根目录的功能
    如果年底买不到CC就出手小指吧
    svn备份策略
    缺乏配置管理造成的常见问题
    高速公路开车必看的注意事项
    山雨欲来踏上Java学习之路
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3871902.html
Copyright © 2020-2023  润新知