首页 > 解决方案 > 下载 storageReference 到 drawable

问题描述

我想将图像从 Firebase 存储加载到操作栏。我尝试使用 Glide,就像我将引用加载到 ImageView 中一样。这行不通,我进行了一些挖掘并找到了对 Glide.with(this).load(source).into(new Task){ 的引用,但我不确定如何执行此操作,或者它是否允许我将图像设置为操作栏图标/徽标。任何意见,将不胜感激。我是安卓新手。我学习了 java,用 JavaFX 编写桌面应用程序。过渡已经进行了一些调整,这真的让我很难过。我觉得他们可能是一个简单的解决方案,但我是一个新手,它正在逃避我。我已经破解了几天,没有运气。我会接受任何形式的建议。谢谢你。

标签: android

解决方案


发布此消息后,我立即尝试了一些新方法,并且奏效了。这是我使用的代码。我将它下载到一个文件中,然后从该文件中创建了一个 Drawable。

StorageReference image = storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile_Pic");

        try {
            final File localFile = File.createTempFile("images", "jpg");


        image.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                String pathName = localFile.getPath();
                Drawable d = Drawable.createFromPath(pathName);
                actionBar.setLogo(d);




            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception exception) {
                Toast.makeText(HowItWorksActivity.this, "OOPS", Toast.LENGTH_LONG).show();
            }
        });
        } catch (IOException e) {
            Toast.makeText(HowItWorksActivity.this, "Realy off", Toast.LENGTH_LONG).show();
        }StorageReference image = storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile_Pic");



        try {
            final File localFile = File.createTempFile("images", "jpg");


        image.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                String pathName = localFile.getPath();
                Drawable d = Drawable.createFromPath(pathName);
                actionBar.setLogo(d);




            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception exception) {
                Toast.makeText(HowItWorksActivity.this, "OOPS", Toast.LENGTH_LONG).show();
            }
        });
        } catch (IOException e) {
            Toast.makeText(HowItWorksActivity.this, "Realy off", Toast.LENGTH_LONG).show();
        }

推荐阅读