画像のURLを指定してそれをImageViewに入れるようのクラス。
defaultImageにはassetsの画像を指定してる。
もしURLから画像が取れない場合(ネットにつながってないときなど)にdefaultImageがImageViewにセットされる。
class GetImage(private val image: ImageView) :
AsyncTask<String, Void, Bitmap>() {
override fun doInBackground(vararg params: String): Bitmap? {
val image: Bitmap
val defaultImage = BitmapFactory.decodeStream(resources.assets.open("image/image.png"))
try {
val imageUrl = URL(params[0])
val imageIs: InputStream
imageIs = imageUrl.openStream()
image = BitmapFactory.decodeStream(imageIs)
return image
} catch (e: IOException) {
//画像が取れない時用
return defaultImage
}
}
override fun onPostExecute(result: Bitmap) {
// 取得した画像をImageViewに設定します。
image.setImageBitmap(result)
}
}使うときはこんな感じ。URLに画像のURLの文字列を入れる。
val ImageView = findViewById<ImageView>(R.id.image)
val imageTask:GetImage = GetImage(ImageView)
imageTask.execute("URL")assets folderの作り方