Извлекать изображения из базы данных Firebase и отображать их на экране в моем приложении

#java #firebase-realtime-database

#java #firebase-realtime-database

Вопрос:

Я пытаюсь получить изображения из базы данных firebase для отображения в моем приложении в Activity.Изображения загружаются успешно, но когда я пытаюсь их просмотреть, я их не вижу.Вот мой код для извлечения их из firebase.Я использую Android Studio.

 public class ActionBar22 extends AppCompatActivity {

    private RecyclerView mrecyclerview;
    private ImageAdapter madapter;

    private ProgressDialog mprogresscircle;

    private DatabaseReference mdatabaseref;
    private List<UploadedPosts> muploads;

    List<UploadedPosts> list = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_action_bar22);


       //pull items from firebase database
       mrecyclerview = findViewById(R.id.recycler_view);
        mrecyclerview.setHasFixedSize(true);
       mrecyclerview.setLayoutManager(new LinearLayoutManager(this));

        mprogresscircle = findViewById(R.id.progress_circle);
        mprogresscircle = new ProgressDialog(ActionBar22.this);
        mprogresscircle.setMessage("Loading...");
        mprogresscircle.show();

        muploads = new ArrayList<>();

      final FirebaseDatabase database = FirebaseDatabase.getInstance();
       DatabaseReference ref  = database.getReference("Uploads");

                for(DataSnapshot postsnapshot : dataSnapshot.getChildren()){
            UploadedPosts upload=postsnapshot.getValue(UploadedPosts.class);
                         muploads.add(upload);
                     }

                     madapter = new ImageAdapter(ActionBar22.this,muploads);

                     mrecyclerview.setAdapter(madapter);
                     mprogresscircle.setVisibility(View.INVISIBLE);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(ActionBar22.this, databaseError.getMessage(),Toast.LENGTH_LONG).show();
                mprogresscircle.dismiss();
                mprogresscircle.setVisibility(View.INVISIBLE);
            }
        });     
    }
}
  

Я хочу, чтобы оно отображало одну фотографию по ширине экрана.Они будут отображаться в виде столбца.Фотографии не отображаются.Только пустой экран.введите описание изображения здесь

Ответ №1:

Используйте Glide или Picasso для отображения изображений в ImageViews, вот пример того, как вы можете это сделать:

Gradle:

 dependencies {
    compile 'com.github.bumptech.glide:glide:3.5.2'
    compile 'com.android.support:support-v4:22.0.0'
}
  

Код:

    Glide
                .with(context)
                .load(yourImageURLHere)
                .apply(RequestOptions.signatureOf(new CenterCrop()))
                .into(ImageView);
  

и здесь вы можете найти несколько других примеров: https://github.com/bumptech/glide , прокрутите страницу вниз и проверьте их.