android - 无法从 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
在此之后,当我尝试通过这种方式获取bitmap
时imageView
:
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
解决方案
这应该可以解决您的问题:
val bitmap = (mDressImage1?.drawable as? BitmapDrawable)?.bitmap
推荐阅读
- jasper-reports - Jasper Reports 6:字段之间的额外空间
- apache-kafka - 将事件从 kafka 广播到越来越多的连接的最佳方式是什么?
- node.js - MulterError:节点js中的意外字段
- python - 您好,我想知道如何使用 GPIOs (machine.pin) using python3 for Android 。机器库是标准的,可以用于每个 SOC?
- nginx - Nginx 反向代理 Exchange 2016
- java - 如何在 iText JAVA 中给出列宽的固定百分比值
- git - 将本地存储库简单推送到 GitHub 不起作用
- java - 如何使用可变 jar 名称在 EC2 Linux 上部署和重启 Spring Boot 应用程序
- pyspark - 我们如何在本地机器上使用 pyspark 实现多核划分?
- firebase - Still get error 'Operation was rejected because the system is not in a state required for the operation's execution' after creating firebase index