AndroidStudio:Kotlin ImageViewにURLからとった画像を貼るメモ書き

画像の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の作り方

AndroidStudio:assetファイル/フォルダの作り方メモ

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA