如何解决如何在android studioJAVA中压缩图像并将其存储在设备特定的文件夹中
我正在制作一个用于图像压缩的应用程序而且我是 Android 开发的新手......所以我的问题是我们在访问 JAVA 中的外部存储时遇到了一些问题......我已经尝试过
compile 'id.zelory:compressor:2.1.0'
compressedImage = new Compressor(this)
.setMaxWidth(640)
.setMaxHeight(480)
.setQuality(75)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.setDestinationDirectoryPath(
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES
).getAbsolutePath()
)
.compressToFile(actualImage);
好的...那么我可以在 Android API 30 中使用 WEBP_LOSSLESS 而不是 WEBP 吗? 主要问题是如何设置存储在特定文件夹中的目的地?
解决方法
getExternalStoragePublicDirectory
的红色弃用框列出了替代方案:
应用可以继续访问存储在共享/外部存储上的内容
通过迁移到替代方案,例如
Context#getExternalFilesDir(String)
,
MediaStore
,
要么
Intent#ACTION_OPEN_DOCUMENT
。
Bitmap.CompressFormat.WEBP
还包含弃用通知:
该字段在 API 级别 30 中已弃用。
明确的
CompressFormat#WEBP_LOSSY
和
CompressFormat#WEBP_LOSSLESS
。
例如,这样的事情应该可以工作:
Context ctx = this;
File storeFolder = ctx.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
compressedImage = new Compressor(this)
.setMaxWidth(640)
.setMaxHeight(480)
.setQuality(75)
.setCompressFormat(Bitmap.CompressFormat.WEBP_LOSSLESS)
.setDestinationDirectoryPath(
storeFolder.getAbsolutePath()
)
.compressToFile(actualImage);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。