Firebase Storage Görüntüleri GridView'da Nasıl Görüntülenir
Android'de Yeniyim, gridview'i öğreniyorum..i Drawable'dan gridview'e kadar bir Resim listesi görüntüle, ancak Firebase Storage'daki resimleri grid görünümünde nasıl görüntüleyeceğimi bilmiyorum
Birçok Öğretici gördüm ve çok sayıda Stackoverflow Cevabı denedim ama ihtiyacım olanı alamıyorum
Firebase Storage'da Yeni Klasör oluşturdum ve oraya 6 resim yükledim ve 6 resmin tamamını grid görünümünde görüntülemek istiyorum
İşte benim kodum, çekilebilir resimlerden resimleri nasıl görüntülediğimi ve bu url'yi nasıl yükleyeceğimi bilmiyorum ve kayarken tamamen kafam karıştı ve kendimi karıştırdım
public class NewListCreate extends BottomSheetDialogFragment {
int[] images = {R.drawable.menu, R.drawable.musicbox, R.drawable.shoppingbag, R.drawable.shoppingcart, R.drawable.wallet, R.drawable.weddingdress};
int imageRes = images[0];
public NewListCreate() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.new_list_create, container, false);
ImageButton done = view.findViewById(R.id.done);
final EditText listname = (EditText) view.findViewById(R.id.listname);
final GridView gridView = (GridView) view.findViewById(R.id.gridview);
final CustomAdpter customAdpter = new CustomAdpter(images, getContext());
gridView.setAdapter(customAdpter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
customAdpter.selectedImage = i;
customAdpter.notifyDataSetChanged();
imageRes = images[i];
}
});
done.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String itemname = listname.getText().toString();
if (!TextUtils.isEmpty(listname.getText().toString())) {
startActivity(new Intent(getContext(), CheckslateHome.class).putExtra("data", itemname).putExtra("image", imageRes));
dismiss();
} else {
Toast.makeText(getContext(), "List Name not Empty ", Toast.LENGTH_SHORT).show();
}
}
});
return view;
}
public class CustomAdpter extends BaseAdapter {
public int selectedImage = 0;
private int[] icons;
private Context context;
private LayoutInflater layoutInflater;
public CustomAdpter(int[] icons, Context context) {
this.icons = icons;
this.context = context;
this.layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return icons.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
view = layoutInflater.inflate(R.layout.image_list, viewGroup, false);
}
StorageReference storageReference = FirebaseStorage.getInstance().getReference();
ImageView imageicons = view.findViewById(R.id.image);
if (i < icons.length) {
imageicons.setImageResource(icons[i]);
if (i != selectedImage) {
imageicons.setImageAlpha(50);
}
imageicons.setScaleType(ImageView.ScaleType.CENTER_CROP);
// imageicons.setLayoutParams(new GridView.LayoutParams(150, 150));
if (i == selectedImage) {
view.setBackgroundColor(Color.WHITE);
} else {
view.setBackgroundColor(Color.TRANSPARENT);
}
}
;
return view;
}
}
}
firebase depolama bilgileri burada

Yanıtlar
Bir FirebaseUtils sınıfı oluşturdum , içinden seçebileceğim (kelime oyunu olmayan) bir dizi statik firebase yöntemim var.
İstediğinizi elde etmek için bir döngü oluşturun ve ardından aşağıdaki downloadPic yöntemini çağırın.
for( int index = 0; index < noOfPhotos; index++ )
FirebaseUtils.downloadPic( ivPic[index], "Photos/", image[index] );
ivPic görüntü görünümüdür
picToDisplay depolama indirilen pic olduğunu
storageFolder Firebase örneğin klasör geçerli: Fotoğraflar /
picToDownload içinde pic adıdır storageFolder
noOfPhotos sahip fotoğraf sayısı olduğu, belli ki bir sorgu ve yükü ayarlayabilirsiniz onları ArrayList
kolaylık sağlamak için
//////////////////////////////////////////////////////////////////////////////////
private static void loadPicIntoGlide( @NonNull ImageView ivPic,
@NonNull String picToDisplay )
{
if( picToDisplay.isEmpty() )
{
Glide.with( ivPic.getContext() )
.load( R.mipmap.ic_default_pic )
.into( ivPic );
}
else
{
Glide.with( ivPic.getContext() )
.load( picToDisplay )
.into( ivPic );
}
}
///////////////////////////////////////////////////////////////////////////////////
public static void downloadPic( @NonNull ImageView ivPicView,
@NonNull String storageFolder,
@NonNull String picToDownload )
{
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
Uri uri = Uri.fromFile( new File( picToDownload ) );
StorageReference storageReference = storageRef.child(
storageFolder + picToDownload );
storageReference.getDownloadUrl().addOnSuccessListener(
new OnSuccessListener<Uri>()
{
@Override
public void onSuccess( Uri uri )
{
String actPic = uri.toString();
loadPicIntoGlide( ivPicView, actPic );
}
} )
.addOnFailureListener( new OnFailureListener()
{
@Override
public void onFailure( @NonNull Exception e )
{
loadPicIntoGlide( ivPicView, "" );
}
} );
}