當(dāng)然,在捕獲一張圖片時(shí),如果Camera 應(yīng)用程序沒有將圖片返回給調(diào)用活動(dòng),那么簡單地使用內(nèi)置的Camera應(yīng)用程序捕獲圖像將不具有真正的作用。而為了使得它真正有用,可以將活動(dòng)中的startActivity 方法替換為startActivityForResult 方法。使用該方法將允許我們訪問從Camera應(yīng)用程序中返回的數(shù)據(jù),它恰好是用戶以位圖(Bitmap)形式捕獲的圖像。
以下是一個(gè)基本的示例。
package com.apress.proandroidmedia.ch1.cameraintent;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.ImageView;
public class CameraIntent extends Activity {
final static int CAMERA_RESULT = 0;
ImageView imv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = new Intent(android.provider
.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, CAMERA_RESULT);
}
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK)
{
Get Bundle extras = intent.getExtras();
Bitmap bmp = (Bitmap) extras.get("data");
imv = (ImageView) findViewById(R.id.ReturnedImageView);
imv.setImageBitmap(bmp);
}
}
}