仕事で画像表示を表示する処理を扱うことがあり画像ダウンロードやキャッシュを
良しなに扱ってくれるライブラリの「Picasso」「Glide」を調べたので
基本的な情報をメモ程度の内容で記載します。
Picasso
Squareが開発したライブラリ
GithubのURLはこちら
Glide
Googleが開発したライブラリ
GithubのURLはこちら
双方のライブラリ共にコード1行で基本的には画像読み込みから
ImageViewに画像を設定することが可能になります。
セットアップ
repositories {
//Glideを使用するために設定
google()
mavenCentral()
}
dependencies {
//Picassoを使用するために設定
implementation 'com.squareup.picasso:picasso:2.71828'
//Glideを使用するために設定
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="パッケージ名">
//インターネット上の画像を取得する場合は追加
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
使用方法
・画像を取得して表示する場合
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//取得した画像を表示するImageView
val imageView = findViewById<ImageView>(R.id.image)
//Picassoを使用して画像を表示する場合
Picasso.get()
.load("表示したい画像URL")
.into(imageView)
//Glideを使用して画像を表示する場合
Glide.with(this)
.load("表示したい画像URL")
.into(imageView)
}
}
load
メソッドに表示したい画像のURLを設定しinto
メソッドに画像を適用するimageViewを設定
・画像を取得に失敗したときのエラー画像を表示する場合
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//取得した画像を表示するImageView
val imageView = findViewById<ImageView>(R.id.image)
//Picassoを使用した場合
Picasso.get()
.load("表示したい画像URL")
.error("エラー時に表示したい画像名")
.into(imageView)
val requestOptions = RequestOptions()
.error("エラー時に表示したい画像名")
//Glideを使用した場合
Glide.with(this)
.load("表示したい画像URL")
.apply(requestOptions)
.into(imageView)
}
}
Picassoの場合はerror
メソッドに表示したい画像名を設定します。
Glideの場合はRequestOptions()
を作成して作成したRequestOptions()
変数をapply
設定で可能になります。
エラー時の画像は基本的にはdrawable
ファイル内に保存されていると思うのでR.drawable.画像名
と設定すれば問題ないかと考えます。
最後に
PicassoとGlideのセットアップ方法と基本的は使用方法を今回は記載しました。
メモ書き程度の内容になりますが以上になります。