各種筆記…
- /res/mipmap-* 這類資料夾裡面,負責放 icon
- /res/drawable 當中放入其它素材
- 按鈕點擊下去後
因為會用到 Camera 所以需要 runtime permission
記住要把 「需要permission的動作放在else裡面」 不然他在一面請求你的permission時就會先做下面的事情所以就會Crash了~QQif(ContextCompat.checkSelfPermission(MainActivity_Context, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){ requests_for_permission(CAMERA_REQUEST_CODE) }else{ val intent= Intent(MediaStore.ACTION_IMAGE_CAPTURE) startActivityForResult(intent, CAMERA_REQUEST_CODE) }
- 想要讓人只能從檔案管理中選擇圖片時
然後回傳時val intent:Intent = Intent(Intent.ACTION_GET_CONTENT) intent.setType("image/*") startActivityForResult(intent, FILESYS_REQUEST_CODE)
- 從檔案管理那邊拿到之後還要經過轉換才能變成Bitmap
// 接下來用當時RequestCode來判斷怎麼處理回傳的資料 // 用 When == Switch when(requestCode){ CAMERA_REQUEST_CODE -> { if (resultCode == Activity.RESULT_OK && data != null){ displayImage(data.extras.get("data") as Bitmap) } } FILESYS_REQUEST_CODE -> { if(resultCode == Activity.RESULT_OK && data != null){ val resolver = this.contentResolver val bitmap = MediaStore.Images.Media.getBitmap(resolver, data?.data) displayImage(bitmap) } } }
fun displayImage(img: Bitmap){ this.imageView.setImageBitmap(img) }
- 拿到 Permission之後要做的事情
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) when(requestCode){ CAMERA_REQUEST_CODE -> { if((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)){ Toast.makeText(this, "CAMERA 成功~", Toast.LENGTH_LONG) } } } }