微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

图片未显示在Imageview中选项卡式活动中的Fragent内部,ViewPager内部-毕加索未替换占位符

如何解决图片未显示在Imageview中选项卡式活动中的Fragent内部,ViewPager内部-毕加索未替换占位符

我有一个选项卡式活动,每个选项卡都包含一个带有recyclerView的片段。 recyclerView中的一个项目由带有文本的图像组成,两者均从Firebase实时数据库获取

一切似乎都正常,没有错误,但是当我运行该应用程序时,会提取显示名称,而不显示图像。

有帮助吗? 预先谢谢你!

firebase structure

emulator showing name but not image

这是片段

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.linearlayoutmanager;
import androidx.recyclerview.widget.RecyclerView;

import com.andrei.bucatariadebuzunar.Clases.ImageUploadInfo;
import com.andrei.bucatariadebuzunar.Clases.ImageUploadInfoViewHolder;
import com.andrei.bucatariadebuzunar.R;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.squareup.picasso.Picasso;

public class FripturiFragment extends Fragment {


    public RecyclerView recyclerView;
    private DatabaseReference databaseReference;
    FirebaseRecyclerOptions<ImageUploadInfo> options;
    FirebaseRecyclerAdapter<ImageUploadInfo,ImageUploadInfoViewHolder>adapter;


    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_layout,container,false);
        databaseReference = FirebaseDatabase.getInstance().getReference().child("Recipes_Images").child("Fripturi");
        databaseReference.keepSynced(true);
        recyclerView = rootView.findViewById(R.id.recyclerViewRecipes);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new linearlayoutmanager(getContext()));

        LoadData();

        return rootView;
    }

    private void LoadData() {
        options = new FirebaseRecyclerOptions.Builder<ImageUploadInfo>().setQuery(databaseReference,ImageUploadInfo.class).build();
        adapter = new FirebaseRecyclerAdapter<ImageUploadInfo,ImageUploadInfoViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull ImageUploadInfoViewHolder imageUploadInfoViewHolder,int position,@NonNull ImageUploadInfo model) {
                imageUploadInfoViewHolder.textView.setText(model.getimageName());
                Picasso.get().load(model.getimageURL()).placeholder(R.drawable.hat).into(imageUploadInfoViewHolder.imageView);
            }

            @NonNull
            @Override
            public ImageUploadInfoViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recipe_card_view,parent,false);
                return new ImageUploadInfoViewHolder(view);
            }
        };
        adapter.startListening();
        recyclerView.setAdapter(adapter);
    }
}```


  

解决方法

毕加索无法识别此网址格式,因此它将无法显示图片。

StorageReference ref = storage.getReferenceFromUrl(url);

storageRef.child("Recipes_Images").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
       //set your image
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。