最近我开始学习Kotlin.在拥有一些基本功能后,我被图像选择器困住了.
是否有任何特定的方法从库和相机中选择图像Kotlin?或者我应该在我们的普通Java代码中实现,然后从Kotlin文件中调用它?
Java代码:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
Run Code Online (Sandbox Code Playgroud)
使用Kotlin什么其他差异来执行此操作?
Mel*_*dek 13
这里有一个用于选择图像和捕获图像的示例功能代码:
fun selectImageInAlbum() {
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type = "image/*"
if (intent.resolveActivity(packageManager) != null) {
startActivityForResult(intent, REQUEST_SELECT_IMAGE_IN_ALBUM)
}
}
fun takePhoto() {
val intent1 = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
if (intent1.resolveActivity(packageManager) != null) {
startActivityForResult(intent1, REQUEST_TAKE_PHOTO)
}
}
companion object {
private val REQUEST_TAKE_PHOTO = 0
private val REQUEST_SELECT_IMAGE_IN_ALBUM = 1
}
Run Code Online (Sandbox Code Playgroud)
另外,不要忘记将其添加到清单文件中:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
我希望我能提供帮助
小智 5
现在它startActivityForResult()已被弃用,这是新的方式。首先,在内部执行此操作onCreate
科特林:
val selectImageIntent = registerForActivityResult(GetContent())
{ uri ->
imageView.setImageURI(uri)
}
Run Code Online (Sandbox Code Playgroud)
爪哇:
ActivityResultLauncher<String> selectImageIntent = registerForActivityResult(
new ActivityResultContracts.GetContent(),
new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
imageView.setImageURI(uri);
}
});
Run Code Online (Sandbox Code Playgroud)
并致电selectImageIntent.launch("image/*")启动画廊。
你也可以用 Kotlin 编写。
val intent = Intent()
intent.type = "image/*"
intent.action = Intent.ACTION_GET_CONTENT
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10157 次 |
| 最近记录: |