@aqua2021 (hirano)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

GlideAppでListViewに画像を表示について教えてください。

GlideAppにて画像を表示させたい。

■FirebaseStoreにある画像URLをGlideAppを使用してImageViewに表示させたい。

ListAdapter.kt
class ListAdapter(context: Context, var dogList:ArrayList<RecordDB>) :ArrayAdapter<RecordDB>(context,0,dogList){

    private val layoutInflater=context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater

    lateinit var DBDB:RecordDB

    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {

        val rec=dogList[position]
        var view=convertView

        if (null==view){
            view=layoutInflater.inflate(R.layout.list_item,parent,false)
        }

        val Imageviewlist=view?.findViewById<ImageView>(R.id.image_list)
        //GlideにてFirebaseStoreから画像のURLを取得しImageViewに挿入する
        DBDB= RecordDB(ImageDataUrl = String())
        GlideApp.with(context)
            .load(DBDB.ImageDataUrl!![position])
            .into((Imageviewlist)view)

             val name=view?.findViewById<TextView>(R.id.text_Name)
        name?.text=rec.Name

        val time=view?.findViewById<TextView>(R.id.text_Time)
        time?.text=rec.Time.toString()

        val caption=view?.findViewById<TextView>(R.id.text_Caption)
        caption?.text=rec.Caption

        val image_name=view?.findViewById<TextView>(R.id.textView3)
        image_name?.text=rec.ImageName


        return view!!
    }
RecordDB.kt
data class RecordDB(val uid:String?="",
                    val Time:String?="",
                    val Name:String?="",
                    val Caption:String?="",
                    val ImagePhoto:Int=0,
                    val ImageName:String?="",
                    val ImageDataUrl:String?="")

list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:background="@drawable/rounded_listitem">

    <ImageView
        android:id="@+id/image_list"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="15dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@tools:sample/avatars" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:paddingLeft="10dp"
        app:layout_constraintEnd_toStartOf="@+id/linearLayout2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/image_list" />

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="315dp"
        android:layout_height="122dp"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/image_list">

        <TextView
            android:id="@+id/text_Time"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="TextView"
            android:paddingLeft="5dp"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/text_Name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:text="TextView" />

        <TextView
            android:id="@+id/text_Caption"
            android:layout_width="326dp"
            android:layout_height="43dp"
            android:paddingLeft="5dp"
            android:layout_marginLeft="5dp"
            android:text="TextView" />
    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

■エラーの場所

GlideApp.with(context)
            .load(DBDB.ImageDataUrl!![position])
            .into((Imageviewlist)view)
This view is not constrained vertically: at runtime it will jump to the top unless you add a vertical constraint

以上、ご教授の程お願いいたします。

0 likes

1Answer

"画像のURLを取得しImageViewに挿入する"と書いているように into には ImageView を渡したほうが良いのではないでしょうか。

0Like

Comments

  1. @aqua2021

    Questioner

    回答いただきありがとうございました。このコードでは実装できませんでしたので、あたらに作り直しました。

Your answer might help someone💌