安卓如何从相册获取图片到imageview中 使用kotlin编写
时间: 2023-05-30 22:04:30 浏览: 207
以下是使用Kotlin编写的从相册获取图片并显示在ImageView中的示例代码:
1. 在xml布局文件中添加一个ImageView:
```xml
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop" />
```
2. 在Activity中添加以下代码:
```kotlin
class MainActivity : AppCompatActivity() {
private lateinit var imageView: ImageView
private val PICK_IMAGE_REQUEST = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
imageView = findViewById(R.id.imageView)
imageView.setOnClickListener {
pickImageFromGallery()
}
}
// 从相册选择图片
private fun pickImageFromGallery() {
val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
startActivityForResult(intent, PICK_IMAGE_REQUEST)
}
// 获取选择的图片并显示在ImageView中
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null) {
val selectedImage = data.data
val filePathColumn = arrayOf(MediaStore.Images.Media.DATA)
val cursor = contentResolver.query(selectedImage!!, filePathColumn, null, null, null)!!
cursor.moveToFirst()
val columnIndex = cursor.getColumnIndex(filePathColumn[0])
val picturePath = cursor.getString(columnIndex)
cursor.close()
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath))
}
}
}
```
以上代码通过点击ImageView触发从相册选择图片的操作,然后在onActivityResult方法中获取并显示选择的图片。