Skip to content

Instantly share code, notes, and snippets.

@crazy-diya
Last active August 7, 2020 06:48
Show Gist options
  • Save crazy-diya/0eb880d3fe1369b0813dd62a423e2947 to your computer and use it in GitHub Desktop.
Save crazy-diya/0eb880d3fe1369b0813dd62a423e2947 to your computer and use it in GitHub Desktop.
Retrive image in Firebase Database using GridView in Android Studio Java
package com.example.learningfirebase;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
public class ImageRetrieve extends AppCompatActivity {
DatabaseReference databaseReference;
GridView gridView;
ArrayList<Upload> list;
CustomAdapter customAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_retrieve);
databaseReference = FirebaseDatabase.getInstance().getReference("Images"); /**Inniciate databaseReferance eka*/
gridView = (GridView) findViewById(R.id.grdv1);
list = new ArrayList<>(); /**Array list eke data type eka wenne Upload Class eka... eeka nisa access karaddid ehenmama wenna oone*/
customAdapter = new CustomAdapter(this,list);
gridView.setAdapter(customAdapter);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()){
System.out.println(dataSnapshot1);
Upload upload = dataSnapshot1.getValue(Upload.class); /**dataSnapshot1 eken ganna value class ekakataa add karanawa eewa access karanna pahasu wemma*/
list.add(upload); /**Object eka list ekata add karanawa*/
}
/*Awasaanayedi list ekata object okkoma assign wela*/
customAdapter.notifyDataSetChanged(); // Api Custome adapter eka notify karanawa
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(ImageRetrieve.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
class CustomAdapter extends BaseAdapter{
Context context;
ArrayList<Upload> list;
LayoutInflater layoutInflater;
public CustomAdapter(Context context, ArrayList<Upload> list) {
this.context = context;
this.list = list;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = layoutInflater.inflate(R.layout.item_view,null);
ImageView imageView = (ImageView) convertView.findViewById(R.id.imageItem);
Upload currentUpload = list.get(position);/**methandi List eke current item eka Upload class ekata set wenawa*/
Picasso.get().
load(currentUpload.getImgUrl()). /** E Set una current item eke getImgUrl() method ekata cl karala return karagannawa image eke url eka */
into(imageView); /**set wenawa imageView ekata*/
return convertView;
}
}
class Upload{
private String imgUrl;
public Upload() {
}
public Upload(String imgUrl) {
this.imgUrl = imgUrl;
}
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment