MediaStore.Media.Images Android/Kotlin:如何对用户隐藏保存在图库中的照片?

MediaStore.Media.Images Android/Kotlin:如何对用户隐藏保存在图库中的照片?,android,mediastore,Android,Mediastore,我正在使用以下程序使用MediaStore.ACTION\u image\u capture Camerainent捕获图像 代码: 我有以下问题: 已捕获的图像将显示在库中。我如何向用户隐藏它? 拍摄完照片后,我在ImageView中设置照片,该视图滞后于活动。在将图像设置为ImageView时,如何压缩图像? 是否有办法仅在potrait模式下单击照片? 我尝试将外部内容URI更改为内部内容URI,但这给了我以下警告:写入内部存储不受支持android一旦您使用媒体存储,它们就在“多媒体资料

我正在使用以下程序使用MediaStore.ACTION\u image\u capture Camerainent捕获图像

代码:

我有以下问题:


已捕获的图像将显示在库中。我如何向用户隐藏它? 拍摄完照片后,我在ImageView中设置照片,该视图滞后于活动。在将图像设置为ImageView时,如何压缩图像? 是否有办法仅在potrait模式下单击照片?
我尝试将外部内容URI更改为内部内容URI,但这给了我以下警告:写入内部存储不受支持android

一旦您使用媒体存储,它们就在“多媒体资料”中


因此,您必须使用GetFileDir和classic file方法来保存它们,以供您观看。

一旦您使用媒体存储,它们就位于“多媒体资料”中

因此,您必须使用getFilesDir和经典文件方法来保存它们,以供您查看


已捕获的图像将显示在库中。怎么办 我对用户隐瞒了吗

如前所述,根据MediaStore API使用的声明,您不能使用MediaStore API存储在非库中

这提供了一个使用将照片存储到特定于应用程序的存储的示例

拍摄完图像后,我在ImageView中设置照片,即 滞后于活动。设置时如何压缩图像 它是到ImageView的吗

Try,一个快速高效的Android图像加载库。此外,在我键入此文件时,我还推荐了其他图像加载库,如毕加索和Coil

是否有办法仅在纵向模式下单击照片

也许这会有帮助。您可以通过编程或声明方式设置ImageView的属性


已捕获的图像将显示在库中。怎么办 我对用户隐瞒了吗

如前所述,根据MediaStore API使用的声明,您不能使用MediaStore API存储在非库中

这提供了一个使用将照片存储到特定于应用程序的存储的示例

拍摄完图像后,我在ImageView中设置照片,即 滞后于活动。设置时如何压缩图像 它是到ImageView的吗

Try,一个快速高效的Android图像加载库。此外,在我键入此文件时,我还推荐了其他图像加载库,如毕加索和Coil

是否有办法仅在纵向模式下单击照片


也许这会有帮助。您可以通过编程或声明方式设置ImageView的属性。

已捕获的图像将显示在库中。如何向用户隐藏该信息?-首先不要把它们放在画廊里。这可能需要您停止使用ACTION_IMAGE_CAPTURE,因为用户选择的相机应用程序可以执行任何它想要的操作。照片已经被压缩;考虑使用像GLIDE、PICASSO或COLL这样的图像加载库来填充图像视图。用户可以用自己选择的相机应用程序做任何用户想做的事情,包括在风景中拍照。如果您需要对相机进行更多的控制,请使用CameraX或其他库。@感谢Commonware提供的建议和见解,它将研究这些内容。已捕获的图像将显示在库中。如何向用户隐藏该信息?-首先不要把它们放在画廊里。这可能需要您停止使用ACTION_IMAGE_CAPTURE,因为用户选择的相机应用程序可以执行任何它想要的操作。照片已经被压缩;考虑使用像GLIDE、PICASSO或COLL这样的图像加载库来填充图像视图。用户可以用自己选择的相机应用程序做任何用户想做的事情,包括在风景中拍照。如果您需要对相机进行更多的控制,请使用CameraX或其他库。@谢谢您的建议和见解,Commonware将研究这些。哦,好的。谢谢你提供的信息。哦,好的。谢谢你提供的信息。
val values = ContentValues()
values.put(MediaStore.Images.Media.TITLE, "New Picture")
values.put(MediaStore.Images.Media.DESCRIPTION, "From the Camera")
imageUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)
//camera intent
val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
startActivityForResult(cameraIntent, IMAGE_CAPTURE_CODE)