1

我正在尝试ImageSlider在 recyclerView 中显示图像。我所做的是,作为要从Firebase存储中获取的图像,我在适配器类中创建了一个 SlideModel 数组。将有最少 1 个和最多 5 个图像。以下是我是如何做到这一点的。

我的代码似乎可以工作,因为我可以在Logcat. 但是,当我添加最后一行代码时holder.itemView.image_slider.setImageList(remoteImages, ScaleTypes.FIT),我的应用程序崩溃并出现以下错误。没有它,应用程序可以正常工作,但滑块中没有图像。

    java.lang.ExceptionInInitializerError
    at okhttp3.internal.platform.Platform.get(Platform.java:85)
    at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
    at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
    at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:1015)
    at com.squareup.picasso.OkHttp3Downloader.<init>(OkHttp3Downloader.java:71)
    at com.squareup.picasso.OkHttp3Downloader.<init>(OkHttp3Downloader.java:50)
    at com.squareup.picasso.OkHttp3Downloader.<init>(OkHttp3Downloader.java:40)
    at com.squareup.picasso.Picasso$Builder.build(Picasso.java:848)
    at com.squareup.picasso.Picasso.get(Picasso.java:683)
    at com.denzcoskun.imageslider.adapters.ViewPagerAdapter.instantiateItem(ViewPagerAdapter.kt:71)
    at com.denzcoskun.imageslider.adapters.ViewPagerAdapter.instantiateItem(ViewPagerAdapter.kt:25)
    at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1158)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
    at android.view.View.measure(View.java:27131)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481)
    at android.view.View.measure(View.java:27131)

implementation 'com.github.denzcoskun:ImageSlideshow:0.1.0'在我的build.gradle

以下是我的 recyclerView 项目布局的一部分的XML代码。ImageSlider

    <com.denzcoskun.imageslider.ImageSlider
    android:id="@+id/image_slider"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    app:iss_auto_cycle="true"
    app:iss_period="2500"
    app:iss_delay="0"/>

以下是我的ItemListAdapter.kt.

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val model = list[position]

        val numOfImages = model.image_count
        val remoteImages: ArrayList<SlideModel> = ArrayList()


        if (holder is MyViewHolder) {

            when (numOfImages) {
                1 -> {
                    
                    remoteImages.add(
                        SlideModel(
                            model.image,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    Log.d("TAG", remoteImages.toString())
                    Log.d("TAG", remoteImages.size.toString())
                }
                2 -> {
                   
                    remoteImages.add(
                        SlideModel(
                            model.image,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image2,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    Log.d("TAG", remoteImages.toString())
                    Log.d("TAG", remoteImages.size.toString())
                }
                3 -> {
                    remoteImages.add(
                        SlideModel(
                            model.image,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image2,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image3,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    Log.d("TAG", remoteImages.toString())
                    Log.d("TAG", remoteImages.size.toString())
                }
                4 -> {
                    remoteImages.add(
                        SlideModel(
                            model.image,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image2,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image3,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image4,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    Log.d("TAG", remoteImages.toString())
                    Log.d("TAG", remoteImages.size.toString())
                }
                5 -> {
                    remoteImages.add(
                        SlideModel(
                            model.image,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image2,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image3,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image4,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    remoteImages.add(
                        SlideModel(
                            model.image5,
                            model.title,
                            ScaleTypes.FIT
                        )
                    )

                    Log.d("TAG", remoteImages.toString())
                    Log.d("TAG", remoteImages.size.toString())
                }
                else -> {
                    Log.d("TAG", "There are no images")
                }
            }

holder.itemView.image_slider.setImageList(remoteImages, ScaleTypes.FIT)

    }
4

0 回答 0