首页 > 解决方案 > 无法从 ImageView 获取位图作为 BitmapDrawable

问题描述

在我的 Android - Kotlin 应用程序中,我试图从图像中获取位图以使用它colorPallete,这是ImageView我的XML文件中的:

        <ImageView
            android:id="@+id/dressImage_1"
            android:layout_width="142dp"
            android:layout_height="123dp"
            android:contentDescription="@string/app_name"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/icon" />

这是我向其中添加图像的方法:

Picasso.get().load(dress.image1).into(mDressImage1)

一切顺利到这里。

注意dress.image1返回一个 URL

在此之后,当我尝试通过这种方式获取bitmapimageView

        val bitmap = (mDressImage1?.drawable as BitmapDrawable).bitmap

它只是崩溃了。什么都没有logcat

更新 它给了我错误null cannot be cast to non-null type android.graphics.drawable.BitmapDrawable

指着线val bitmap = (mDressImage1?.drawable as BitmapDrawable).bitmap

标签: androidkotlinpicassoandroid-bitmap

解决方案


这应该可以解决您的问题:

val bitmap = (mDressImage1?.drawable as? BitmapDrawable)?.bitmap

推荐阅读