【发布时间】:2020-01-07 19:04:44
【问题描述】:
我想创建一个对话框,让用户可以选择相机或画廊来从中挑选图像。 对话框中的每个项目都需要一个图标和一个图像。 如何获取默认相机和图库的那些?
更新
我现在是这样的
val galleryIntent = Intent(Intent.ACTION_GET_CONTENT).apply {
setType("image/*")
addCategory(Intent.CATEGORY_OPENABLE)
putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/jpeg", "image/png"))
}
val galleryResInfo = packageManager.queryIntentActivities(galleryIntent, 0)[0]
然后在对话框回收器视图持有人我可以得到这样的图标和名称
val packageManager = holder.appName.context.packageManager
holder.appIcon.setImageDrawable(app.resolveInfo.loadIcon(packageManager))
holder.appName.setText(app.resolveInfo.loadLabel(packageManager))
难道没有更好的解决方案吗?
【问题讨论】:
-
由于您对这两个答案不满意,因此不清楚您想要实现什么。如果您想使用两个按钮启动相机或图库,您可以为此提供自己的两个图标并使用答案中的意图。如果您需要应用程序本身,您也可以使用该答案:stackoverflow.com/a/23172341/1505074
-
packageManager.resolveActivity 来自该链接的答案正是我想要的。唯一缺少的是 MATCH_DEFAULT_ONLY 标志,它确保返回与 startActivity 相同的活动。谢谢你,克里斯蒂安!
标签: android kotlin android-camera android-gallery