使用內置的Camera應用程序捕獲圖像
當然,在捕獲一張圖片時,如果Camera 應用程序沒有將圖片返回給調用活動,那麼簡單地使用內置的Camera應用程序捕獲圖像將不具有真正的作用。而爲了使得它真正有用,可以將活動中的startActivity 方法替換爲startActivityForResult 方法。使用該方法將允許我們訪問從Camera應用程序中返回的數據,它恰好是用戶以位圖(Bitmap)形式捕獲的圖像。
import android.app.Activity;
@Override
protected void onActivityResult(int requestCode, int resultCode,
if (resultCode == RESULT_OK)
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
//從意圖中獲取附加值
//從附加值中獲取返回的圖像
在我們的佈局XML (layout/main.xml)文件中,有一個ImageView對象。ImageView是泛型視圖的擴展,其支持圖像的顯示。由於我們有一個帶有指定ReturnedImageView編號(id)的ImageView對象,因此需要在活動中獲得它的引用,並通過setImageBitmap方法將它的Bitmap對象設置爲返回的圖像。這將使得應用程序用戶能夠查看這幅捕獲的圖像。
<ImageView android:id="@+id/ReturnedImageView" android:layout_width=
imv = (ImageView) findViewById(R.id.ReturnedImageView);
當運行這個示例時,您可能會注意到結果圖像很小(在我的手機上,它的寬爲121像素,高爲162像素。其他設備會具有不同的默認大小)。這不是一個bug——相反,它是經過精心設計的。當通過一個意圖觸發時,Camera應用程序不會將全尺寸的圖像返回給主調活動。通常,這樣做需要大量的內存,而移動設備一般會在內存方面受限。相反,Camera應用程序將在返回的意圖中返回一幅很小的縮略圖,如圖1-2所示。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.