在应用程序中集成Firebase存储映像的问题

时间:2019-09-28 16:35:51

标签: android firebase

我是android新手,正在制作需要各种Horizo​​ntalRecyclerView的应用程序。我需要将以上内容与Firebase存储集成。 我遵循了一个帮助我实现Horizo​​ntalRecyclerView的教程,但是我需要从Firebase存储中获取图像。我希望该应用使用Firebase存储下载图像,然后显示它。我手动将图像上传到Firebase存储。

HomeActivity中的recyclerview

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"> 
    </androidx.recyclerview.widget.RecyclerView>

listitem.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_margin="1dp">

   <androidx.cardview.widget.CardView
    android:layout_width="120dp"
    android:layout_height="120dp"
    app:cardCornerRadius="4dp"
    app:cardMaxElevation="2dp"
    app:cardElevation="1dp"
    android:layout_centerInParent="true">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <de.hdodenhof.circleimageview.CircleImageView
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:scaleType="centerCrop"
            android:layout_centerHorizontal="true"
            android:id="@+id/image_view"
            android:src="@drawable/ic_launcher_background"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:text="Canada"
            android:layout_below="@+id/image_view"
            android:id="@+id/name"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:layout_marginTop="5dp"
            android:textColor="#000"
            android:layout_marginBottom="5dp"
            android:autoSizeTextType="uniform"
            android:autoSizeMinTextSize="8sp"
            android:autoSizeMaxTextSize="15sp"/>

        </RelativeLayout>

    </androidx.cardview.widget.CardView>>

    </RelativeLayout>

使用的方法

    private void getImages(){
    Log.d(TAG, "initImageBitmaps: preparing bitmaps.");

    mImageUrls.add("https://images-na.ssl-images- 
    amazon.com/images/I/61s3uG2iFkL._SX466_.jpg");
    mNames.add("Havasu Falls");

    mImageUrls.add("https://i.redd.it/tpsnoz5bzo501.jpg");
    mNames.add("Trondheim");

    mImageUrls.add("https://i.redd.it/qn7f9oqu7o501.jpg");
    mNames.add("Portugal");

    mImageUrls.add("https://i.redd.it/j6myfqglup501.jpg");
    mNames.add("Rocky Mountain National Park");


    mImageUrls.add("https://i.redd.it/0h2gm1ix6p501.jpg");
    mNames.add("Mahahual");

    mImageUrls.add("https://i.redd.it/k98uzl68eh501.jpg");
    mNames.add("Frozen Lake");


    mImageUrls.add("https://i.redd.it/glin0nwndo501.jpg");
    mNames.add("White Sands Desert");

    mImageUrls.add("https://i.redd.it/obx4zydshg601.jpg");
    mNames.add("Austrailia");

    mImageUrls.add("https://i.imgur.com/ZcLLrkY.jpg");
    mNames.add("Washington");

    initRecyclerView();

}

private void initRecyclerView(){
    Log.d(TAG, "initRecyclerView: init recyclerview");

    LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
    RecyclerView recyclerView = findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(layoutManager);
    RecyclerViewAdapter adapter = new RecyclerViewAdapter(this, mNames, mImageUrls);
    recyclerView.setAdapter(adapter);
}

enter code here

那么,我应该如何处理呢?

1 个答案:

答案 0 :(得分:0)

首先,获取图像的参考,并使用该参考下载图像,然后创建一个适配器对象,该对象将图像的本地路径传递到CircleImageView。