gpt4 book ai didi

Android Firebase - 将图片从 drawable 上传到存储

转载 作者:搜寻专家 更新时间:2023-11-01 09:22:20 25 4
gpt4 key购买 nike

我正在尝试从可绘制文件夹中获取图像并将其保存在 Firebase 存储中。要使用 UploadTask 保存图像,它需要一个 Uri 文件。来自 drawable 的图像是 int。有没有办法把那个 int 转换成 Uri?

请检查我的代码

 private void saveProfileImgToStorage(final User user) {
storageRef = FirebaseStorage.getInstance().getReference();

StorageReference userImgProfile = storageRef.child("/usersProfiles/" + currentUser.getUid() +"/profile_image");
UploadTask uploadTask;

//What should i do here??
//This is the path of the image "R.drawable.ic_account"
uploadTask = userImgProfile.putFile();

uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri firebaseURL = taskSnapshot.getDownloadUrl();
user.setProfilePic(firebaseURL.toString());
uploadToFirebaseDatabase(user);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG,e.getMessage().toString());
}
});
}

编辑

找到解决方案

   //This how i should write it - and now it works!
Uri imageUri = Uri.parse("android.resource://"+ R.class.getPackage().getName()+"/"+R.drawable.profile_image);
UploadTask uploadTask;

uploadTask = userImgProfile.putFile(imageUri);

最佳答案

要从存储在 drawable 中的图像中获取 uri,只需执行此操作

Uri imageUri = Uri.parse("android.resource://your.package.name/" + R.drawable.ic_account);

稍微干净一点

 Uri imageUri = Uri.parse("android.resource://" + context.getPackageName() + 
R.drawable.ic_account);

如果您从 fragment 中引用 Activity 或 getActivity(),则 context 可以是 this

要将其上传到 Firebase,您需要执行此操作

File file = new File(imageUri.getPath());

然后

uploadTask = userImgProfile.putFile(file);

关于Android Firebase - 将图片从 drawable 上传到存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53781117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com