手持终端
Eclipse平台下Android开发环境的搭建
PhoneGap配置到Eclipse开发环境
使用PhoneGap开发Android应用程序
PhoneGap3.0以上版本配置到Eclipse开发环境
使用PhoneGap3.0版本开发Android应用程序
PhoneGap3.0的第三方Android插件
Cordova配置到Android Studio开发环境
Android系统基本架构
Android的字符串颜色图片样式
Android的常用控件及菜单
Android的消息提示及传递
Android系统的组件通信
Android系统的Service
Android的广播消息接收
Android的数据存储与访问
Android系统的网络应用
Android图形图像处理
Android的Fragment框架
Android系统的并发编程
Java源文件结构与保留字
Java语言的数据类型与变量
Java的运算符与流程控制
Java语言的数组及操作
Java面向对象编程
Java的常用类
Android开发常用工具及命令
Android应用程序权限管理
Android系统提供的R类内置资源
Android系统的控件类及其方法
Android系统的菜单类及其方法
Android系统的对话框
Android应用程序模型及组件
Android的绘图类及方法
Android系统的动画效果
Android的数据库操作
Android的多媒体功能
Android系统照相机的使用
Android的文本朗读TTS
获取Android系统信息
Android系统的电话操作
Android系统的定位
Android系统的传感器
Android手机提供了完善的照相机功能,android.hardware软件包中提供了与照相机相关的一些类和方法,通过这些方法可以完成拍照、录像、获取相机参数、修改相机参数等操作。
1.Camera类:照相机
Camera类是Android照相机拍照操作的主要类,其中提供了多种函数,包括打开相机、预览、设置相机参数、关闭相机等。通过这些方法,应用程序可以方便地实现照相机的拍照操作。
为了能够在应用程序中操作照相机,AndroidManifest.xml文件中需要增加相应的权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
1)open方法:打开照相机
该方法用于创建一个新的照相机对象,用于控制手机上的第一个照相机。如果手机上没有照相机组件,该方法返回null。在使用照相机拍照或者录像之前,必须首先使用该方法。语法格式有几种:
public static Camera open()
public static Camera open(int cameraId)
其中,cameraId为照相机编号,取值为0~getNumberOfCameras()-1。
open方法与其他几个方法一起使用才能构成一个完整的照相机应用。
2)takePicture方法:拍照
该方法用于使用照相机执行拍照,这是使用照相机功能最主要的方法,其中需要指定一些重要的回调处理函数,如图像捕获回调函数、raw图像回调函数、jpeg图像回调函数等。语法格式有几种:
public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.Pictureback jpeg)
public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.Pictureback postview, Camera.Pictureback jpeg)
其中,参数shutter为当图像被捕获时触发的回调函数,可以在此播放一个快门声以提醒用户;参数raw为raw格式的图像数据可用时触发的回调函数;参数jpeg为当jpeg格式的压缩图像数据可用时触发的回调函数;参数postview为当拍照后的图片发生缩放操作时触发的回调函数,并非所有的硬件都支持。takePicture方法与其他几个方法一起使用才能构成一个完整的照相机应用。
3)release方法:释放照相机
该方法用于释放照相机对象。当一个应用程序完成拍照操作且不再使用时,需要调用该方法释放其占用的系统资源。语法格式:
public final void release()
release方法与其他几个方法一起使用才能构成一个完整的照相机应用。
4)PictureCallback方法:照片回调函数
该回调函数用于在照相机拍照产生图片时触发。可以在这个回调函数中执行保存图片文件的操作,也可以将拍照图片显示在界面上。使用时往往需要重载其中的onPictureTaken方法。示例:
public class firstActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1=(Button)findViewById(R.id.button1);
Button btn2=(Button)findViewById(R.id.button2);
Button btn3=(Button)findViewById(R.id.button3);
final ImageView imageView=(ImageView)findViewById(R.id.imageView1);
final PictureCallback jpeg=new Camera.PictureCallback(){
@Override
public void onPictureTaken(byte[] data,Camera camera){
camera.startPreview();
Bitmap bm=BitmapFactory.decodeByteArray(data,0,data.length);
imageView.setImageBitmap(bm);
}
};
btn1.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
camera=Camera.open();
}
});
btn2.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
camera.takePicture(null,null,jpeg);
}
});
btn2.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
camera.release();
camera=null;
}
});
}
}
5)ShutterCallback方法:拍照回调函数
这个回调函数在图像被捕捉时触发,可以在这里播放一个快门声音以提醒用户。使用时往往需要重载其中的onShutter方法。示例:
final Camera.ShutterCallback shutter=new Camera.ShutterCallback(){
@Override
public void onShutter(){
Toast.makeText(getApplicationContext(),"成功拍照",
Toast.LENGTH_LONG).show();
}
};
6)getNumberOfCameras方法:获取照相机数量
该方法用于获取一个Android设备包含的照相机数量。如果一个硬件设备中包含多个摄像头,就可以通过该方法获取其数量,然后使用open方法打开指定的照相机。语法格式:
public static int getNumberOfCameras()
示例:
int num=camera.getNumberOfCameras();
7)startPreview方法:开始预览
该方法用于开始捕获图像,并将前一帧图像显示在屏幕上,也就是实现了预览的效果。只有setPreviewDisplay方法调用之后,才会启用实际的预览效果。语法格式:
public final void startPreview()
8)stopPreview方法:停止预览
该方法用于停止捕获图像,并将前一帧图像显示在屏幕上,同时复位照相机以等待下一次调用startPreview方法。语法格式:
public final void stopPreview()
9)setPreviewDisplay方法:设置预览
该方法用于设置预览所使用的Surface,预览效果将在SurfaceView对象中显示。必须首先调用setPreviewDisplay方法,然后才能调用startPreview方法进行预览。语法格式:
public final void setPreviewDisplay(SurfaceHolder holder)
其中,参数holder为放置预览的Surface,可以通过SurfaceView的getHolder方法获取。示例:
public class firstActivity extends Activity{
private Camera camera;
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1=(Button)findViewById(R.id.button1);
final ImageView imageView=(ImageView)findViewById(R.id.imageView1);
surfaceView=(SurfaceView)findViewById(R.id.surfaceView1);
surfaceHolder=surfaceView.getHolder();
SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback(){
@Override
public void surfaceDestroyed(SurfaceHolder holder){
camera.stopPreview();
camera.release();
camera=null;
}
@Override
public void surfaceCreated(SurfaceHolder holder){
camera=Camear.open();
try{
camera.setPreviewDisplay(holder);
}catch(IOException e){
e.printStackTrace();
}
camera.startPreview();
}
@Override
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){
//......
}
};
surfaceHolder.addCallback(surfaceCallback);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
final PictureCallback jpeg=new Camera.PictureCallback(){
@Override
public void onPictureTaken(byte[] data,Camera camera){
camera.startPreview();
Bitmap bm=BitmapFactory.decodeByteArray(data,0,data.length);
imageView.setImageBitmap(bm);
}
};
final Camera.ShutterCallback shutter=new Camera.ShutterCallback(){
@Override
public void onShutter(){
Toast.makeText(getApplicationContext(),"成功拍照",
Toast.LENGTH_LONG).show();
}
};
btn1.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
camera.takePicture(shutter,null,jpeg);
}
});
}
}
代码中新增了SurfaceView,并在SurfaceHolder回调函数中重载了surfaceCreated、surfaceChanged、surfaceDestroyed方法。在surfaceCreated方法中打开照相机并设置预览,在surfaceDestroyed方法中停止预览并释放照相机。按钮监听器中,通过takePicture方法来拍照。Android仿真器不能模拟预览效果,需要在真机上运行。
10)getParameters方法:获取相机参数
该方法用于获取照相机的参数,返回值为Camera.Parameters类型,其中包含了照相机的各项参数,例如照片格式、尺寸、预览尺寸等。该方法往往结合setParameters方法一起使用来重新设置照相机的参数。语法格式:
public Camera.Parameters getParameters()
11)setParameters方法:设置相机参数
该方法用于设置照相机的参数。相机的参数保存在Camera.Parameters类型的变量中,其中涵盖了照相机的各项参数,例如照片格式、尺寸、预览尺寸等。该方法往往结合getParameters方法一起使用来重新设置照相机的参数。语法格式:
public void setParameters(Camera.Parameters params)
示例:
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){
Camera.Parameters parameters=camera.getParameters();
parameters.setPreviewSize(320,240);
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);
camera.startPreview();
}
12)autoFocus方法:设置自动对焦
该方法用于设置启动照相机的自动对焦功能,注册一个对焦完成回调函数AutoFocusCallback,并需要重载其中的onAutoFocus方法。当相机对焦成功时就执行该回调函数中的onAutoFocus方法。onAutoFocus方法必须在startPreview和stopPreview方法中直接调用。该方法需要硬件的支持,在某些没有自动对焦功能的手机中运行时将出错。语法格式:
public final void autoFocus(Camera.AutoFocusCallback cb)
其中,参数cb为自动对焦成功时触发的回调函数。示例:
final AutoFocusCallback cb=new Camera.AutoFocusCallback(){
@Override
public void onAutoFocus(boolean success,Camera camera){
Toast.makeText(getApplicationContext(),"成功对焦",
Toast.LENGTH_LONG).show();
}
};
camera.autoFocus(cb);
autoFocus方法的使用需要手机上的照相机自动对焦功能,模拟器上不支持该功能。
13)cancelAutoFocus方法:取消自动对焦
该方法用于在当前进程中取消照相机的自动对焦功能。无论当前进程是否使用自动对焦,该方法都将返回一个默认的对焦位置。如果照相机不支持自动对焦功能,则该方法无任何效果。语法格式:
public final void cancelAutoFocus()
14)unlock方法:解锁相机
该方法用于解锁相机,使其能够在另外的进程中被使用。一般来说,一个照相机被锁定在一个进程中,直到release方法被调用。使用该方法可以临时释放照相机,使之能够被其他进程使用,也就是能够使相机在进程之间快速切换。当其他进程结束后,可以调用reconnect方法来重新使用照相机。该方法也常用于录制视频的场合。语法格式:
public final void unlock()
15)reconnect方法:重新连接相机
该方法用于当其他进程结束使用相机后,重新连接相机。reconnect方法和unlock方法经常一起使用,来使另外的进程可以临时使用照相机。语法格式:
public final void reconnect()
16)startSmoothZoom方法:开始变焦
该方法用于平滑地变焦到指定数值。在该方法的执行过程中,将会触发变焦监听器OnZoomChangeListener。该方法的使用需要实际硬件支持,如果手机上的照相机不支持变焦功能,将调用失败。语法格式:
public final void startSmoothZoom(int value)
其中,参数value为指定的变焦值,该值的取值范围依赖于硬件,一般为0~getMaxZoom()。
2.Camera.Parameters类:照相机参数
Camera.Parameters类提供了Android照相机参数的获取和设置。通过该类中的方法,应用程序可以获取和设置场景模式、对焦模式、照片尺寸、色彩效果、白平衡模式和闪光灯模式等。Android模拟器并没有提供照相机参数的详细模拟,需要使用手机来进行测试。在使用该类的方法时,也需要添加相应的权限。
1)getSupportedPictureSizes方法:获取支持的图片大小
该方法用于获取Android手机中相机支持的图片大小。该函数返回的是支持的图片大小的列表,这种方法的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的图片大小不同,而且Android模拟器仅支持一种尺寸大小。语法格式:
public List<Camera.Size> getSupportedPictureSizes()
示例:
public class firstActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
camera=Camera.open();
Camera.Parameters parameters=camera.getParameters();
List<Size> pic=parameters.getSupportedPictureSizes();
String str;
int i=0;
str="当前相机支持的照片尺寸如下:\n";
for(i=0;i<pic.size();i++){
str=str+"第"+i+"个照片尺寸:";
str=str+pic.get(i).width+","+pic.get(i).height+"\n";
}
Toast.makeText(getApplicationContext(),str,Toast.LENGTH_LONG).show();
camera.release();
camera=null;
}
});
}
}
代码中首先定义了Camera类型的变量camera,然后在按钮监听器中打开相机,并通过getSupportedPictureSizes方法获取支持的照片尺寸列表。接着,通过for循环来组织各个尺寸并通过Toast视图显示照相机支持的照片尺寸列表。
2)getMaxExposureCompensation方法:获取最大曝光补偿指数
该方法用于获取Android手机中相机支持的最大曝光补偿指数。一般来说,最大曝光补偿指数大于或等于0。如果getMaxExposureCompensation方法和getMinExposureCompensation方法返回0,则表示曝光补偿是不支持的。语法格式:
public int getMaxExposureCompensation()
示例:
int mec=parameters.getMaxExposureCompensation();
3)getMaxZoom方法:获取最大变焦值
该方法用于获取Android手机中相机支持的最大变焦值,不分光学变焦和数码变焦。一般来说,最大变焦值大于或等于0。通过该方法可以了解相机的变焦能力,应用程序可以通过setZoom方法设置合理的变焦值。语法格式:
public int getMaxZoom()
示例:
int mec=parameters.getMaxZoom();
4)getMinExposureCompensation方法:获取最低曝光补偿指数
该方法用于获取Android手机中相机支持的最低曝光补偿指数。一般来说,最低曝光补偿指数小于或等于0。如果getMaxExposureCompensation方法和getMinExposureCompensation方法返回0,则表示曝光补偿是不支持的。语法格式:
public int getMinExposureCompensation()
5)getPictureFormat方法:获取图片格式
该方法用于获取Android手机中相机采用的图片格式。Android相机支持的图片格式在ImageFormat类中提供,包括如下几种图像编码格式:
·ImageFormat.JPEG:JPEG编码格式
·ImageFormat.NV16:YCbCr格式,用于视频
·ImageFormat.NV21:YCbCr格式的图像,使用NV21编码格式
·ImageFormat.RGB_565:采用RGB_565编码的RGB格式
·ImageFormat.UNKNOWN:未知格式
·ImageFormat.YUY2:YCbCr格式的图像,它使用YUYV(YUY2)编码格式
·ImageFormat.YV12:Android的YUV格式
语法格式:
public int getPictureFormat()
6)getPictureSize方法:获取当前照片尺寸
该方法用于获取Android手机相机采用的当前照片尺寸,返回值为Camera.Size类型。这是获取当前照相机照片尺寸的主要方法。该方法获取的照片尺寸在getSupportedPictureSizes方法获取的图片大小列表之内。语法格式:
public Camera.Size getPictureSize()
示例:
Camera.Size mec=parameter.getPictureSize();
str="当前照片尺寸:"+mec.width+","+mec.height;
7)getPreviewFormat方法:获取预览格式
该方法用于获取Android手机中相机采用的帧图像预览格式。Android相机支持的图片预览格式在ImageFormat类中提供。语法格式:
public int getPreviewFormat()
8)getPreviewSize方法:获取预览尺寸
该方法用于获取Android手机中相机采用的当前图片预览尺寸,返回值为Camera.Size类型。这是获取当前照相机图片预览尺寸的主要方法。该方法获取的图片尺寸在getSupportedPictureSizes方法获取的图片大小列表之内。语法格式:
public Camera.Size getPreviewSize()
9)getSupportedColorEffects方法:获取支持的色彩效果列表
该方法用于获取Android手机中相机支持的色彩效果。该函数返回的是所支持的色彩效果列表,这种方法的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的色彩效果是不同的。如果手机不支持色彩效果,将返回null。语法格式:
public List<String> getSupportedColorEffects()
示例:
public class firstActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
camera=Camera.open();
Camera.Parameters parameters=camera.getParameters();
List<String> pic=parameters.getSupportedColorEffects();
String str;
int i=0;
str="当前相机支持的色彩效果如下:\n";
for(i=0;i<pic.size();i++){
str=str+"第"+i+"种色彩效果:";
str=str+pic.get(i)+"\n";
}
Toast.makeText(getApplicationContext(),str,Toast.LENGTH_LONG).show();
camera.release();
camera=null;
}
});
}
}
10)getSupportedFlashModes方法:获取支持的闪光灯模式列表
该方法用于获取Android手机中相机支持的闪光灯模式。该函数返回的是支持的闪光灯模式的列表,这种方式的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的闪光灯模式是不同的。如果手机不支持闪光灯模式设定,将返回null。语法格式:
public List<String> getSupportedFlashModes()
使用方法类似于getSupportedColorEffects方法。
11)getSupportedFocusModes方法:获取支持的对焦模式列表
该方法用于获取Android手机中相机支持的对焦模式。该函数返回的是所支持的对焦模式列表,这种方法的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的对焦模式是不同的。语法格式:
public List<String> getSupportedFocusModes()
使用方法类似于getSupportedColorEffects方法。
12)getSupportedJpegThumbnailSizes方法:获取支持的JPEG缩略图尺寸
该方法用于获取Android手机中相机支持的JPEG缩略图尺寸。该函数返回的是所支持的JPEG缩略图尺寸列表,这种方法将始终返回至少有两个元素的列表。不同的Android手机提供的照相机组件支持的JPEG缩略图尺寸是不同的,但尺寸(0,0)缩略图始终是支持的。语法格式:
public List<Camera.Size> getSupportedJpegThumbnailSizes()
使用方法类似于getSupportedPictureSizes方法。
13)getSupportedPictureFormats方法:获取支持的图片格式列表
该方法用于获取Android手机中相机支持的图片格式。函数返回值是所支持的图片格式列表,这种方法的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的图片格式是不同的,一般以JPEG格式为主。语法格式:
public List<Integer> getSupportedPictureFormats()
使用方法类似于getSupportedColorEffects方法。
14)getSupportedPreviewFormats方法:获取支持的预览格式列表
该方法用于获取Android手机中相机支持的图片预览格式。函数返回值是所支持的图片预览格式列表,这种方法的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的图片预览格式是不同的,一般NV21格式是一贯支持的,YV12格式是API等级12之后支持的。语法格式:
public List<Integer> getSupportedPreviewFormats()
使用方法类似于getSupportedColorEffects方法。
15)getSupportedPreviewSizes方法:获取支持的预览大小
该方法用于获取Android手机中相机支持的图片预览大小。函数返回值是所支持的图片预览大小列表,这种方法的返回列表中至少包含一个元素。不同的Android手机提供的照相机组件支持的图片预览大小是不同的,而Android模拟器仅支持一种尺寸大小。语法格式:
public List<Camera.Size> getSupportedPreviewSizes()
使用方法类似于getSupportedPictureSizes方法。
16)getSupportedSceneModes方法:获取支持的场景模式
该方法用于获取Android手机中相机支持的场景模式。该函数返回的是所支持的场景模式列表。不同的Android手机提供的照相机组件支持的场景模式是不同的,如果相机不支持场景模式设置返回null。语法格式:
public List<String> getSupportedSceneModes()
使用方法类似于getSupportedColorEffects方法。
17)getSupportedWhiteBalance方法:获取支持的白平衡
该方法用于获取Android手机中相机支持的白平衡模式。该函数返回的是所支持的白平衡模式列表。不同的Android手机提供的照相机组件支持的白平衡是不同的,如果相机不支持白平衡设置则返回null。语法格式:
public List<String> getSupportedWhiteBalance()
使用方法类似于getSupportedColorEffects方法。
18)getWhiteBalance方法:获取当前白平衡设置
该方法用于获取Android手机中相机当前采用的白平衡设置,通过白平衡设置可以获得不同效果的照片。Android相机支持如下几种白平衡设置:
·WHITE_BALANCE_AUTO:自动
·WHITE_BALANCE_INCANDESCENT:白炽灯
·WHITE_BALANCE_FLUORESCENT:日光灯
·WHITE_BALANCE_WARM_FLUPRESCENT:暖日光灯
·WHITE_BALANCE_DAYLIGHT:阳光
·WHITE_BALANCE_CLOUDY_DAYLIGHT:阴天
·WHITE_BALANCE_TWILIGHT:黄昏
·WHITE_BALANCE_SHADE:阴影
语法格式:
public String getWhiteBalance()
19)getZoom方法:获取当前变焦值
该方法用于获取Android手机中相机当前采用的变焦值。程序中也可以首先使用isZoomSupported方法检查是否支持变焦,然后在使用该方法。返回值的范围为0~getMaxZoom(),0表示没有变焦。语法格式:
public int getZoom()
20)isZoomSupported方法:获取是否支持变焦
该方法用于获取Android手机中的相机是否支持变焦。如果支持变焦,则返回true,否则返回false。应用程序在调用其他变焦方法之前,需要首先调用该方法来确认相机支持变焦操作。语法格式:
public bpplean isZoomSupported()
21)isSmoothZoomSupported方法:获取是否支持平滑变焦
该方法用于获取Android手机中相机是否支持平滑变焦。如果支持平滑变焦返回true,否则返回false。应用程序在调用其他平滑变焦方法之前,需要首先调用该方法确认相机支持平滑变焦操作。语法格式:
public boolean isSmoothZoomSupported()
22)getColorEffect方法:获取当前色彩效果
该方法用于获取Android手机中相机当前的色彩效果。Android系统支持多种拍照色彩效果,不同手机实际支持的色彩效果是不同的。常见的色彩效果为:
·EFFECT_NONE:无
·EFFECT_MONO:单色
·EFFECT_NEGATIVE:底片
·EFFECT_SOLARIZE:过度曝光
·EFFECT_SEPIA:复古
·EFFECT_POSTERIZE:色调分离
·EFFECT_WHITEBOARD:白板
·EFFECT_BLACKBOARD:黑板
·EFFECT_AQUA:水绿色
语法格式:
public String getColorEffect()
23)getFlashMode方法:获取当前闪光灯模式
该方法用于获取Android手机中相机当前的闪光灯模式。Android系统支持多种闪光灯模式,不同的手机实际支持的闪光灯模式是不同的,如果不支持闪光灯模式设定则返回null。常见的闪光灯模式为:
·FLASH_MODE_OFF:关闭
·FLASH_MODE_AUTO:自动
·FLASH_MODE_ON:常开
·FLASH_MODE_RED_EYE:消除红眼
·FLASH_MODE_TORCH:TORCH模式
语法格式:
public String getFlashMode()
24)getFocalLength方法:获取焦距
该方法用于获取Android手机中相机当前的对焦焦距,以毫米为单位。通过该方法可以获取实际的焦距值,该方法总是返回一个有效的值。语法格式:
public float getFocalLength()
25)getFocusMode方法:获取当前对焦模式
该方法用于获取Android手机中相机当前的对焦模式。Android系统支持多种对焦模式,不同的手机支持的对焦模式是不同的,此方法总是返回一个非空值。常见的对焦模式为:
·FOCUS_MODE_AUTO:自动对焦
·FOCUS_MODE_INFINITY:远山
微距自动对焦
·FOCUS_MODE_FIXED:固定
·FOCUS_MODE_EDOF:全幅对焦
·FOCUS_MODE_CONTINUOUS_VIDEO:连续对焦
语法格式:
public String getFocusMode()
26)getSceneMode方法:获取当前场景模式
该方法用于获取Android手机中相机当前的场景模式。不同场景模式对相机曝光时间、快门时间等参数进行了不同的优化。Android系统支持多种场景模式,不同的手机实际支持的场景模式是不同的,如果不支持场景模式设置则返回null。常见的场景模式为:
·SCENE_MODE_AUTO:自动
·SCENE_MODE_ACTION:运动
·SCENE_MODE_PORTRAIT:人像
·SCENE_MODE_LANDSCAPE:风景
·SCENE_MODE_NIGHT:夜景
·SCENE_MODE_NIGHT_PORTRAIT:夜景人像
·SCENE_MODE_THEATRE:剧院
·SCENE_MODE_BEACH:沙滩
·SCENE_MODE_SNOW:雪景
·SCENE_MODE_SUNSET:日落
·SCENE_MODE_STEADYPHOTO:写真
·SCENE_MODE_FIREWORKS:烟花
·SCENE_MODE_SPORTS:体育
·SCENE_MODE_PARTY:聚会
·SCENE_MODE_CANDLELIGHT:烛光
语法格式:
public String getSceneMode()