所以...我得到了一个简单的项目,在该项目中,单击按钮时会用意图打开相机并拍照,如果用户按下“确定”,则会在ImageView中显示照片图像,这是一个片段...
在按钮上,我调用相机意图,并在image_uri
变量中获得了结果URI,因此我使用以下命令将该图像放入ImageView对象中:
imageView.setImageURI(image_uri)
现在,我想将此图像保存到内部/外部存储器或图库中。我看到了很多答案,并且在线上有很多教程都说必须使用buildDrawingCache()
方法,问题是,Android Studio说此方法已在Java中弃用。
那我该怎么办?
PS:我对Kotlin / Android开发还很陌生,所以我不知道必须给您提供哪些参数。我正在使用 Windows 10
使用 Android Studio 3.4.1 , JRE:1.8.0_152-release-1343-b01答案 0 :(得分:0)
如果从相机意图中获取图像,则可以将其获取为位图并保存到存储中。
class MainActity : AppCompatActivity() {
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
super.onActivityResult(requestCode, resultCode, intent)
//Get img from camera intent
val img: Bitmap? = intent?.extras?.get("data") as Bitmap?
img?.let { img ->
val root = Environment.getExternalStorageDirectory().absolutePath
val imgFile = = File(root, "myImg.jpg")
img.compress(Bitmap.CompressFormat.JPEG, 90, FileOutputStream(imgFile))
//Alert gallery to update images
val intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE).apply {
data = Uri.fromFile(imgFile)
}
this@MainActivity.sendBroadcast(intent)
}
}