可能是因为在获取URI时没有正确指定文件的扩展名。在Android中,Drawable资源是以资源ID的形式存在的,而不是以文件的形式存在。因此,直接从Drawable中获取PNG的URI是不可行的。
要解决这个问题,可以通过以下步骤来获取Drawable资源的URI:
下面是一个示例代码:
// 获取Drawable资源
Drawable drawable = getResources().getDrawable(R.drawable.your_drawable);
// 将Drawable转换为Bitmap
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// 将Bitmap保存到本地文件
File file = new File(getExternalFilesDir(null), "image.png");
try {
FileOutputStream fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
// 获取保存后的文件的URI
Uri uri = Uri.fromFile(file);
这样,你就可以从Drawable中获取PNG的URI,并且带有正确的文件扩展名。在实际应用中,你可以根据具体需求选择合适的文件保存路径和文件名。
对于腾讯云相关产品,推荐使用腾讯云对象存储(COS)来存储和管理图片文件。腾讯云对象存储(COS)是一种高可用、高可靠、强安全性的云存储服务,适用于各种场景下的数据存储和传输。你可以通过以下链接了解更多关于腾讯云对象存储(COS)的信息:
腾讯云对象存储(COS)产品介绍:https://cloud.tencent.com/product/cos
希望以上信息能对你有所帮助!如果还有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云