С моим приложением android я пытаюсь настроить представление изображения с URL-адресом и получаю сообщение об ошибке, что мой объект ImageView является нулевым, ошибка:
"java.lang.IllegalStateException: tvImage must not be null"
Я пытался использовать библиотеку Пикассо и использовать Asyn c. С обоими я получаю сообщение об ошибке, и я не понимаю, почему.
Вот мой код, использующий Asyn c:
Вызов onCreate:
DownloadImage(findViewById(R.id.tvImage)).execute(FeedAdapter.imageUrl)
Это класс для загрузки изображения с URL:
private class DownloadImage(val imageView: ImageView) : AsyncTask<String, Void, Bitmap>() {
private val TAG = "DonloadImage"
/** Methods: */
override fun onPostExecute(result: Bitmap) {
super.onPostExecute(result)
imageView.setImageBitmap(result)
}
override fun doInBackground(vararg url: String?): Bitmap {
Log.d(TAG, "doingBackground: starts with ${url[0]}")
val rssFeed = downloadImage(url[0])
return BitmapFactory.decodeStream(rssFeed)
}
private fun downloadImage(urlPath: String?): InputStream {
return URL(urlPath).openStream()
}
}
Вот мой код с использованием Picasso:
if (tvImage.drawable != null) {
Picasso.get().load(FeedAdapter.imageUrl).into(tvImage)
}
Это мой файл макета, включающий imageView:
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_marginEnd="60dp"
android:textAlignment="textStart"
android:textColor="@color/colorPrimary"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/tvImage"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="NBA Live Mobile" />
<TextView
android:id="@+id/tvArtist"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:textAlignment="textStart"
android:textColor="@color/colorAccent"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvName"
tools:text="Electronic Arts" />
<TextView
android:id="@+id/tvSummary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:text="TextView"
android:textColor="@android:color/background_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvArtist" />
<ImageView
android:id="@+id/tvImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toTopOf="@+id/tvArtist"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_launcher" />