I Can't Load Images Retrieved From Firebase Into A Viewpager
I have uploaded some images using an android application into Firebase storage, now I want to be able to display those images inside a ViewPager in that same application. I have fo
Solution 1:
You can use Glide to load the image. For now, you are not loading the image into image view
that's why it's not working here is the code...
@Overridepublic Object instantiateItem( ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Viewview= layoutInflater.inflate(R.layout.custom_layout, container, false);
SliderUtilsutils= sliderImg.get(position);
ImageViewimageView= view.findViewById(R.id.imageView);
// FIXED USING THIS
Glide.with(context).load(**utils.getImageUrl**).into(imageView);
container.addView(view);
return view;
}
EDIT
Also, you need to add the dependencies into your gradle file
dependencies {
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}
Solution 2:
I made it without glide and used image bytes instead of URL (Image is also stored as bytes on FirebaseStorage). Inside the constructor, I passed ArrayList of String containing the path of the image in Firebase Storage.
// Constructor public ViewPageAdapter(Context context, ArrayList<String> images) {
this.context = context;
this.images = images;
mLayoutInFlater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
Here is my instantiateItem() calling images from Firebase and upon receiving success set bitmap to imageView
public Object instantiateItem(@NonNull ViewGroup container, int position) {
//Inflating the image in XMLViewitemView= mLayoutInFlater.inflate(R.layout.pager_image_item, container, false);
//Referencing to ImageViewImageViewimageView= itemView.findViewById(R.id.pagerImageViewMain);
//Get Image from Firebase
StorageReference photoReference= storageReference.child(String.valueOf(images.get(position)));
Log.d("TAGS", images.get(position));
photoReference.getBytes(ONE_MEGABYTE).addOnSuccessListener(newOnSuccessListener<byte[]>() {
@OverridepublicvoidonSuccess(byte[] bytes) {
Log.d("TAGS", "Got image :" + position);
//Set Bitmap Image to ViewBitmapbitmap= BitmapFactory.decodeByteArray(bytes,0, bytes.length);
imageView.setImageBitmap(bitmap);
}
}).addOnFailureListener(newOnFailureListener() {
@OverridepublicvoidonFailure(@NonNull Exception e) {
Toast.makeText(context.getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
});
//Adding the View
Objects.requireNonNull(container).addView(itemView);
return itemView;
}
This is my first answer on StackOverflow hope this will help someone
Post a Comment for "I Can't Load Images Retrieved From Firebase Into A Viewpager"