如何解决在 ImageView 中使用 setImageURI 函数时应用程序崩溃
我正在打开图库并在选择图像时获取图像的 URI。然后我像这样使用 setImageURI 显示图片。
override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,data)
if (resultCode == Activity.RESULT_OK && requestCode == ACTION_CAMERA_REQUEST_CODE){
val uri: Uri? = data?.data
imageUri = uri.toString()
show_iv.setImageURI(Uri.parse(imageUri)) // handle chosen image
}
}
它在我的 imageView (show_iv) 中显示了正确的图像。 但是,当我保存 URI 然后再次打开文件显示该图像时,应用程序崩溃了。
override fun onPause() {
super.onPause()
val title = et_title.text.toString()
if (title.length == 0) {
Toast.makeText(this,"The note can not be saved when the title be blank",Toast.LENGTH_LONG).show();
} else {
if (imageUri == null)
{
fp.addNote(et_title.getText().toString(),et_body.getText().toString() + "img:" + "null",!isTitleExist(title))
}
else
{
fp.addNote(et_title.getText().toString(),et_body.getText().toString() + "img:" + imageUri,!isTitleExist(title));
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_noteeditor)
et_title = findViewById(R.id.et_title);
et_body = findViewById(R.id.et_body);
// add picture
val btn_addphoto: Button = findViewById(R.id.btn_addphoto)
btn_addphoto.setOnClickListener{add_photo()}
show_iv = findViewById(R.id.show_iv)
show_iv.setImageResource(R.drawable.galleryicon)
val intent = getIntent()
val notepos = intent.getIntExtra("NOTEPOS",-1)
fp = FileProcessor(this,MainActivity.EXTERNAL)
titlelist = fp.getNoteList()
if (notepos != -1) {
var title = titlelist[notepos]
et_title.setText(title)
title = title + ".txt"
val content = fp.readFile(title)
val (newContent,scanUri) = content.split("img:")
et_body.setText(newContent)
imageUri = scanUri
if (imageUri == "null")
show_iv.setImageURI(null)
else
show_iv.setImageURI(Uri.parse(imageUri))
} else {
et_title.setText("")
et_body.setText("")
}
}
我用同样的方式来显示图片,并检查了两种情况下的URI是否相同。它是如何发生的?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。