`

照相机---调用

 
阅读更多

ZTE-N760

摄像头像素:320万像素,最大支持2048×1536像素照片拍摄

屏幕分辨率:3.5英寸,分辨率为480×320的电容式屏幕

像素和尺寸:每一厘米等于28像素;若分辨率不变,增加照片尺寸,就会出现马赛克;在COMS/CCD尺寸不变的情况下,像素越低,打印出来的照片越小,像素越高,打印出来的照片就越大。

 

1.调用自带照相机进行照相,然后返回,并保存到指定目录下,预览照片。结果如下:

 

 

 

2.程序代码

 

 

 

package com.photos;

 

 

 

import java.io.File;

 

import java.text.SimpleDateFormat;

 

import java.util.Date;

 

 

 

import android.net.Uri;

 

import android.os.Bundle;

 

import android.os.Environment;//供访问环境变量

 

import android.app.Activity;

 

import android.content.Intent;

 

import android.view.Display;

 

import android.view.Menu;

 

import android.view.View;

 

import android.widget.ImageView;

 

import android.widget.Button;

 

import android.graphics.Bitmap;

 

import android.graphics.BitmapFactory;

 

import android.hardware.Camera;

 

 

 

 

 

publicclass MainActivity extends Activity {

 

    finalstaticintCAMERA_RESULT = 0;

 

    Button mButton1;

 

    ImageView mImageView1;

 

    String imageFilePath;

 

 

 

    @Override

 

    protectedvoid onCreate(Bundle savedInstanceState) {

 

       super.onCreate(savedInstanceState);

 

       setContentView(R.layout.activity_main);

 

       mButton1 = (Button)findViewById(R.id.myButton1);

 

      

 

       //点击照相按钮响应

 

       mButton1.setOnClickListener(new Button.OnClickListener(){

 

 

 

           @Override

 

           publicvoid onClick(View arg0) {

 

              // TODO Auto-generated method stub

 

              // 获取系统的时间:年月日_时分秒作为文件名称

 

              String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

 

             

 

              // 获取SD卡路径返回扩展存储区目录(SDCard)+子目录/DCIM/mytest+File.separator是一个分隔符"\" + 文件名称 

 

              imageFilePath = Environment.getExternalStorageDirectory() 

 

                       .toString()+"/DCIM/mytest" + File.separator+”IMG_”+timeStamp +".jpg"; 

 

             

 

              // 在指定路径下,新建文件用来存储照片信息

 

              File imageFile = new File(imageFilePath); 

 

              

 

              //URI是统一资源标识符(Uniform Resource Identifier) 的意思,它的作用是根据这个URI找到某个资源文件

 

              Uri imageFileUri = Uri.fromFile(imageFile); 

 

             

 

              //new一个Intent 调用照相机照相

 

               Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

 

               i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri); 

 

               //调用一个新的Activity

 

               startActivityForResult(i, CAMERA_RESULT); 

 

           }

 

           ;

 

       });

 

    }

 

       @Override

 

    protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {

 

       // TODO Auto-generated method stub

 

      

 

       super.onActivityResult(requestCode, resultCode, data);

 

      

 

       //如果拍照成功 

 

        if (resultCode == RESULT_OK) { 

 

       

 

        //获取ImageView控件

 

           mImageView1 = (ImageView) findViewById(R.id.myImageView1); 

 

 

 

            //取得屏幕的显示大小 

 

            Display currentDisplay = getWindowManager().getDefaultDisplay(); 

 

            int dw = currentDisplay.getWidth(); 

 

            int dh = currentDisplay.getHeight(); 

 

            /**

 

             * 为了计算缩放的比例,我们需要获取整个图片的尺寸,而不是图片

 

             * BitmapFactory.Options类中有一个布尔型变量inJustDecodeBounds,将其设置为true

 

             * 这样,我们获取到的就是图片的尺寸,而不用加载图片了。

 

             * 当我们设置这个值的时候,我们接着就可以从BitmapFactory.OptionsoutWidthoutHeight中获取到值

 

             */ 

 

            //对拍出的照片进行缩放 

 

            BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); 

 

         

 

            //将其设置为true来获取图片尺寸了

 

            bmpFactoryOptions.inJustDecodeBounds = true; 

 

            Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, 

 

                    bmpFactoryOptions); 

 

 

 

            int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight 

 

                    / (float) dh);  //计算高度比例 

 

            int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth 

 

                    / (float) dw);  //计算宽度比例 

 

             

 

            /**

 

             * 接下来,我们就需要判断是否需要缩放以及到底对宽还是高进行缩放。

 

             * 如果高和宽不是全都超出了屏幕,那么无需缩放。

 

             * 如果高和宽都超出了屏幕大小,则如何选择缩放呢》

 

             * 这需要判断wRatiohRatio的大小

 

             * 大的一个将被缩放,因为缩放大的时,小的应该自动进行同比率缩放。

 

             * 缩放使用的还是inSampleSize变量

 

             */

 

            if (heightRatio > 1 && widthRatio > 1) { 

 

                  if (heightRatio > widthRatio) { 

 

                      bmpFactoryOptions.inSampleSize = heightRatio; 

 

                } else { 

 

                    bmpFactoryOptions.inSampleSize = widthRatio; 

 

                } 

 

              } 

 

  //注意这里,一定要设置为false,因为上面我们将其设置为true来获取图片尺寸了 

 

            bmpFactoryOptions.inJustDecodeBounds = false;

 

            bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions); 

 

              mImageView1.setImageBitmap(bmp); 

 

          } 

 

    }

 

    @Override

 

    publicboolean onCreateOptionsMenu(Menu menu) {

 

       // Inflate the menu; this adds items to the action bar if it is present.

 

       getMenuInflater().inflate(R.menu.main, menu);

 

       returntrue;

 

    }

 

}

 

调用自带的摄像机:

 

    Intent i = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 

 

               i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);

 

               i.putExtra(android.provider.MediaStore.EXTRA_VIDEO_QUALITY, 1);//设置视频

 

 

 

不知道为什么,在调用摄像机的时候,加入我设置了路径,那么保存下来的录像文件竟然是空的,不懂?所以我设置了错误的路径,就是在SD卡上不存在的路径,那么保存下来的录像文件就保存在了默认文件夹下 DCIM/Camera/ 这时候文件是好的??不懂为什么?

 

 

 

分享到:
评论

相关推荐

    照相机2-----调用函数

    标题中的“照相机2-----调用函数”暗示了我们即将探讨的是与Android系统中相机功能相关的编程知识,特别是关于如何通过API调用来控制和操作相机。在Android开发中,Camera API是开发者用来集成相机功能到应用程序的...

    屏幕照相机-VB源码-exe文件

    1. **调用WinAPI函数**:VB通过声明并使用WinAPI函数来实现屏幕捕获。例如,`GetDesktopWindow()`函数获取桌面窗口的句柄,`GetWindowDC()`函数获取该窗口的设备上下文(Device Context, DC),这是屏幕图像的基础。...

    delphi xe5 android 调用照相机获取拍的照片

    Delphi XE5 Android 调用照相机获取拍的照片 Delphi XE5 是一款功能强大且流行的开发环境,它提供了许多优秀的功能,包括对 Android 平台的支持。在 Android 平台上,Delphi XE5 提供了许多有用的组件和 API,允许...

    调用照相机闪光灯的手电

    这个"调用照相机闪光灯的手电"程序是一个自编的测试应用,它在项目中的某个特定部分被使用,并且开发者已经亲自测试过,认为在4.2.2版本的Android设备上运行稳定,具有良好的兼容性。 在Android系统中,手电筒功能...

    照相机例子。程序直接调用照相机,没有用到第三方插件

    在Android开发中,直接调用系统照相机功能是一项常见的任务,尤其在开发摄影类或社交类应用时。这个“照相机例子”展示了如何在不依赖任何第三方库的情况下,利用原生API来启动并控制设备的照相机。让我们深入探讨...

    照相机调用,自制照相机,自动对焦拍照

    在照相机调用的过程中,我们需要获取相机权限,这通常在应用的AndroidManifest.xml文件中声明: ```xml <uses-feature android:name="android.hardware.camera" android:required="true" /> <uses-permission ...

    Qt调用原生安卓照相机

    对于Android平台,Qt提供了与原生系统功能交互的能力,例如调用安卓照相机。本文将深入探讨如何在Qt应用中实现这一功能,涉及的技术包括摄像、打开相册、拍照以及播放摄像视频。 首先,我们需要理解Qt是如何在...

    android 调用照相机拍照

    在Android平台上,调用照相机拍照是常见的功能之一,它涉及到多媒体处理、用户交互以及硬件接口的使用。本文将深入探讨如何在Android应用中实现这一功能,并特别关注对焦优化。 首先,调用照相机拍照的基本流程是...

    delphi xe6 android 调用照相机摄像头拍照片

    在使用Delphi XE6开发Android应用程序时,调用照相机功能是常见的需求,这使得用户可以直接通过应用拍摄照片。本教程将详细讲解如何在Delphi XE6中实现这一功能,无需额外的组件,只需利用系统自带的功能,确保代码...

    android调用照相机拍照与选择本地照片功能

    在Android应用开发中,提供用户调用照相机拍照和选择本地照片是常见的功能。这两个功能的实现涉及到Android系统的相机API、文件系统管理以及权限控制等多个方面。以下将详细阐述这些知识点。 1. 调用照相机拍照: ...

    android调用照相机

    android调用照相机,非常好用,可以实现调用手机自带德相机进行操作

    JS实现微信公众号Html5页面调用手机照相机识别二维码

    1、使用jweixin-1.4.0.js实现微信公众号Html5页面调用手机照相机识别二维码 2、核心代码已经给到txt文件中,可以根据需要自行扩充。 3、二维码可以由自己的API生成,应用到很多领域。

    调用系统自带照相机照相

    在Android开发中,调用系统自带的照相机功能是一项常见的任务。这通常涉及到使用`Intent`对象来启动设备上的相机应用,以便用户可以拍摄照片,然后将拍摄的照片数据回传到我们的应用程序。以下是对这个过程的详细...

    delphi xe5 android 调用照相机摄像头拍照片camera

    在使用Delphi XE5开发Android应用程序时,调用照相机功能是常见的需求,以便让用户拍摄照片并集成到应用中。本示例着重讲解如何在Delphi XE5环境下,利用Android API来实现这一功能,无需额外的组件,只通过原生代码...

    C#wm5wm6系列手机照相机调用程序

    这个“C# WM5WM6系列手机照相机调用程序”就是针对这类设备的一个实例,它展示了如何使用C#语言来实现这一功能。 首先,我们要了解Windows Mobile平台上的API调用。在WM5和WM6中,我们可以使用.NET Compact ...

    cocos2d3.0调用android原生态的照相机功能

    在Cocos2d-x 3.0中,调用Android原生的照相机功能是一项常见的需求,这使得游戏或应用可以集成拍照功能,提升用户体验。本文将详细讲解如何实现这一功能。 首先,我们需要理解Cocos2d-x和Android原生代码的交互方式...

    Android代码-调用系统相册和系统照相机功能雨实例源码.zip

    在Android开发中,调用系统相册和相机是常见的用户交互功能,这使得用户能够方便地选择或拍摄图片,进一步丰富应用的体验。本实例源码提供了如何在Android应用程序中实现这两个功能的具体方法。 首先,调用系统相册...

    调用照相机和相册

    在Android应用开发中,调用照相机和相册是常见的功能需求,允许用户拍摄照片或选择已有的图片。本文将详细讲解如何实现这一功能,并提供源码参考。 首先,我们需要在AndroidManifest.xml文件中添加权限,以便访问...

Global site tag (gtag.js) - Google Analytics