2016级android在线测试15-图像 camera2

有趣有内涵的文章第一时间送达!

喝酒I创作I分享

生活中总有些东西值得分享

@醉翁猫咪

1. ImageView类用于显示各种图像,例如:图标、图片,下面对于ImageView类加载图片方法的描述错误的是()

http://android.xsoftlab.net/reference/android/widget/ImageView.html

您的回答为:void setImageContentView(int resId):设置ImageView的内容为指定的资源。

()void setImageResource(int resld): 设置Drawanble图像。参数resld表示drawable的标识符。

()void setImageDrawable(Drawable drawable): 设置Drawable图像。

()void setImageURI(Uri uri): 设置指定uri的图像。

()void setImageIcon(Icon icon): 设置图标。

()void setImageBitmap(Bitmap bm): 设置Bitmap图像。

()void setImageContentView(int resld) : 设置ImageView的内容为指定的资源。
2. ImageView类的setScaleType(ImageView.ScaleType scaleType)方法是控制图像如何调整大小或者移动,以适应ImageView的大小。参数scaleType的取值在ImageView.ScaleType中定义的,以下对scaleType定义描述错误的是()

http://android.xsoftlab.net/reference/android/widget/ImageView.html
http://android.xsoftlab.net/reference/android/widget/ImageView.ScaleType.html

您的回答为:MATRIX:把图片扩大或者缩小到ImageView的大小(改变图片的原始比例)。

()FIT_CENTER: 把图片按比例或缩小到ImageView的宽度,居中显示。

()CENTER_CROP: 按统一比例扩大图片的大小居中显示,使得图片的长和宽等于或大于ImageView的长(宽)。

()CENTER: 将图片按原来大小居中显示,不进行缩放。

()FIT_END: 把图片按比例扩大或缩小,使得图片能够放入ImageView, 与ImageView 的下部位置对齐进行显示。

()MATRIX: 把图片扩大或者缩小到 ImageView 的大小(改变图片的原始比例) 。
3. BitmapFacotry类的作用是根据文件、流、字节数据等不同的来源创建Bitmap(BMP)图片。下面哪一个不是BitampFactory类创建Bitmap文件的静态方法()
http://android.xsoftlab.net/reference/android/graphics/BitmapFactory.html

您的回答为:Bitamp decodeSDCard(Resources res,int id):从外部存储SD卡中读取图片文件解码转换为BMP图片。

()Bitmap decodeFile(String pathName, BitmapFactory.Options opts): 根据给出的文件路径,将文件解码成BMP 格式。参数pathName表示完整的文件名。参数opts表示Bitmap的参数设置。

()Bitmap decodeFileDescriptor(FileDescriptor fd): 根据文件描述符,编码转换成Bitmap文件。参数fd 表示包含编码数据的文件描述符。

()Bitmap decodeStream(InputStream is): 从输入流中解码转换为BMP文件。参数is 为用于编码的数据流。

()Bitmap decodeFile(String pathName); 根据给出的文件路径,将文件解码转换成BMP格式。

()Bitmap decodeSDCard(Resources res , int id): 从外部存储SD卡读取图片文件解码转换为BMP图片。
4. ViewAnimator是FrameLayout的子类,其作用是以动画的方式切换FrameLayout容器中的视图。以下关于ViewAnimator类重要方法描述错误的是()
http://android.xsoftlab.net/reference/android/widget/ViewAnimator.html

您的回答为:void removeAllViews():清除参数index所指定的视图

()Animation getInAnimationJ(): 返回用于视图进入屏幕时的动画。

()int getDisplayedChild() : 获取当前显示的子视图索引

()Animation getOutAnimation() : 返回用于视图退出屏幕时的动画

()View getCurrentView(): 获取当前显示的子视图。

()void removeAllViews() : 清除参数index所指定的试图。
5. 下面对于ViewFlipper类描述错误的是()
http://android.xsoftlab.net/reference/android/widget/ViewFlipper.html

您的回答为:ViewFlipper类是个抽象类

()ViewFlipper类继承于FrameLayout, 是一个视图View容器类。

()ViewFlipper 类可以用于实现用于视图页面的切换。

()ViewFlipper 类在Layout里面可以放置多个View

()ViewFlipper 类可以设定时间间隔,视图自动播放

()ViewFlipper类是个抽象类。
6. 以下对ViewFlipper类重要方法描述错误的是()
http://android.xsoftlab.net/reference/android/widget/ViewFlipper.html

您的回答为:void stopFlipping ():开始一次定时,用于在子视图间循环切换。

()boolean isAutoStart(): 如果视图显示到窗口上时会自动调用startFlipping() 方法,则返回true。

()boolean isFlipping() : 如果子视图正在切换,则返回 true。

()void setFlipInterval(int milliseconds): 设置视图间切换的时间间隔。参数milliseconds 表示毫秒数。

()void setAutoStart(boolean autoStart): 设置视图显示到窗口上时是否会自动调用startFlipping() 方法。

()void stopFlipping() : 开始一次定时,用于在子视图间循环切换。
7. Android 5.0(API21)之后,android.hardware.Camera被废弃(简称Camera1),的Camera2主要涉及的API有哪些?
http://android.xsoftlab.net/reference/android/hardware/camera2/package-summary.html

您的回答为:

CameraManager:摄像头管理器。这是一个全新的系统管理器,专门用于检测系统摄像头、打开系统摄像头。除此之外,调用CameraManager的getCameraCharacteristics(String)方法即可获取指定摄像头的相关特性。┋

CameraCharacteristics:摄像头特性。该对象通过CameraManager来获取,用于描述特定摄像头所支持的各种特性。┋

CameraDevice:代表系统摄像头。该类的功能类似于早期的Camera类。┋

CameraCaptureSession:这是一个非常重要的API,当程序需要预览、拍照时,都需要先通过该类的实例创建Session。而且不管预览还是拍照,也都是由该对象的方法进行控制的,其中控制预览的方法为setRepeatingRequest();控制拍照的方法为capture()。┋

为了监听CameraCaptureSession的创建过程,以及监听CameraCaptureSession的拍照过程,Camera v2 API为CameraCaptureSession提供了StateCallback、CaptureCallback等内部类。┋

CameraRequest和CameraRequest.Builder:当程序调用setRepeatingRequest()方法进行预览时,或调用capture()方法进行拍照时,都需要传入CameraRequest参数。CameraRequest代表了一次捕获请求,用于描述捕获图片的各种参数设置,比如对焦模式、曝光模式……总之,程序需要对照片所做的各种控制,都通过CameraRequest参数进行设置。CameraRequest.Builder则负责生成CameraRequest对象。

全选
8. 使用Camera2进行拍照的套路包括哪些步骤?

您的回答为:调用CameraManager的openCamera(String cameraId, CameraDevice.StateCallback callback, Handler handler)方法打开指定摄像头。该方法的第一个参数代表要打开的摄像头ID;第二个参数用于监听摄像头的状态;第三个参数代表执行callback的Handler,如果程序希望直接在当前线程中执行callback,则可将handler参数设为null。┋

当摄像头被打开之后,程序即可获取CameraDevice—即根据摄像头ID获取了指定摄像头设备,然后调用CameraDevice的createCaptureSession(List outputs, CameraCaptureSession. StateCallback callback,Handler handler)方法来创建CameraCaptureSession。该方法的第一个参数是一个List集合,封装了所有需要从该摄像头获取图片的Surface,第二个参数用于监听CameraCaptureSession的创建过程;第三个参数代表执行callback的Handler,如果程序希望直接在当前线程中执行callback,则可将handler参数设为null。┋

不管预览还是拍照,程序都调用CameraDevice的createCaptureRequest(int templateType)方法创建CaptureRequest.Builder,该方法支持TEMPLATE_PREVIEW(预览)、TEMPLATE_RECORD(拍摄视频)、TEMPLATE_STILL_CAPTURE(拍照)等参数。┋

通过第返回的CaptureRequest.Builder设置拍照的各种参数,比如对焦模式、曝光模式等。┋

调用CaptureRequest.Builder的build()方法即可得到CaptureRequest对象,接下来程序可通过CameraCaptureSession的setRepeatingRequest()方法开始预览,或调用capture()方法拍照。
9. The general steps for creating a custom camera interface for your application are as follows.
http://android.xsoftlab.net/guide/topics/media/camera.html

您的回答为:Detect and Access Camera - Create code to check for the existence of cameras and request access.┋

Create a Preview Class - Create a camera preview class that extends SurfaceView and implements the SurfaceHolder interface. This class previews the live images from the camera.┋

Build a Preview Layout - Once you have the camera preview class, create a view layout that incorporates the preview and the user interface controls you want.┋

Setup Listeners for Capture - Connect listeners for your interface controls to start image or video capture in response to user actions, such as pressing a button.┋

Capture and Save Files - Setup the code for capturing pictures or videos and saving the output.┋

Release the Camera - After using the camera, your application must properly release it for use by other applications.
10. Audio capture from the device is a bit more complicated than audio and video playback, but still fairly simple, which order is correct?

1.Set the audio source using MediaRecorder.setAudioSource(). You will probably want to use MediaRecorder.AudioSource.MIC.

2.To stop audio capture, call MediaRecorder.stop().

3.Create a new instance of android.media.MediaRecorder.

4.When you are done with the MediaRecorder instance, call
MediaRecorder.release() on it. Calling MediaRecorder.release() is always recommended to free the resource immediately.

5.Set the audio encoder using MediaRecorder.setAudioEncoder().

6.Set output file name using MediaRecorder.setOutputFile().

7.To start audio capture, call MediaRecorder.start().

8.Set output file format using MediaRecorder.setOutputFormat().

9.Call MediaRecorder.prepare() on the MediaRecorder instance.

http://android.xsoftlab.net/guide/topics/media/audio-capture.html
您的回答为:3-1-8-6-5-9-7-6-4

后续

关注我,每天都有优质技术文章推送。工作,学习累了的时候放松一下自己。

本篇文章同步微信公众号

欢迎大家关注我的微信公众号:「醉翁猫咪」

这里写图片描述

原文地址:https://www.cnblogs.com/dashucoding/p/11932766.html