【发布时间】:2011-06-23 12:12:01
【问题描述】:
我的要求是,如果用户单击“立即拍照”按钮,则使用相机捕获用户的图像并将其显示给用户。
谁能提供示例代码?
【问题讨论】:
-
正在使用该应用程序的用户
标签: android
我的要求是,如果用户单击“立即拍照”按钮,则使用相机捕获用户的图像并将其显示给用户。
谁能提供示例代码?
【问题讨论】:
标签: android
首先在您的按钮单击处理程序中创建一个 Intent:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Intent 通常使用 startActivity() 方法启动。但是,在这种情况下,您的应用程序希望等待并使用相机图像捕获的结果。因此,您希望使用 startActivityForResult() 调用来发送 Intent。通过这种方式,您可以检查结果并使用捕获的图像。
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
当调用 startActivityForResult() 方法时,Activity 被启动。一旦该 Activity 完成,调用 Activity 会在其 onActivityResult() 处理程序中显示结果。因此,您需要在应用程序的 Activity 中实现 onActivityResult() 回调方法,如下所示:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
// do something
}
}
是的,又是这样:CAMERA_PIC_REQUEST。这是您需要在应用程序中定义为相机图像捕获 Intent 返回的请求代码的值,如下所示:
private static final int CAMERA_PIC_REQUEST = 1337;
由此返回的图像适合在小型设备屏幕上显示。它作为 Android Bitmap 对象直接进入结果:
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
您如何处理 Bitmap 对象取决于您。在屏幕上显示它就像在 ImageView 上调用 setImageBitmap() 方法一样简单。
【讨论】: