可以使用Intent的方式(可複習Activity內容),開啟裝置上的相機應用程式獲取影像,回傳到自己設計的應用程式中。
//Step1:建立一個要進行影像獲取的Intent物件傳入MediaStore.ACTION_IMAGE_CAPTURE,並發送
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
//用try-catch避免例外發生
try{
//發送intent
startActivityForResult(intnet, 0)
} catch (e:ActivityNotFoundException) {
Toast.makeText(this, "此裝置無相機應用程式", Toast.LENGTH_SHORT).show()
}
//Step2:使用onActivityResult()方法,取得返回的影像資料並顯示
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?){
super.onActivityResult(requestCode, resultCode, data)
//識別返回對象及執行結果
if(requestCode == 0 && resultCode == RESULT_OK){
//取得影像並險是於ImageView
val image = data?.extras?.get("data") ?: return
//轉型成Bitmap類別
imageView.setImageBitmap(image as Bitmap)
}
}