はじめに
画像を非同期で読み込むライブラリは複数ありますよね。
最近はコルーチンを利用したcoilがよく使われている認識ですが、Picassoやglideもまだまだ現役かと思います。
そんな中でも今回はPicassoに関して、OkHttpライブラリと組み合わせて画像取得時に認証情報などのヘッダー情報を付与する方法を簡単にまとめたいと思います。
ヘッダー情報を付与する方法
実装としては以下になります。
override fun onViewCreated(
view: View,
savedInstanceState: Bundle?
) {
val builder = OkHttpClient.Builder()
.authenticator { route, response ->
response.request.newBuilder()
// 任意のヘッダー情報を設定してください
.addHeader(
"AUTHORIZATION_NAME",
"AUTHORIZATION_NAME_VALUE"
).build()
}.build()
val downloader = OkHttp3Downloader(builder)
val picasso = Picasso.Builder(requireContext())
.downloader(downloader)
.build()
}
以上になります、上記で作成したpicassoオブジェクトを使用することで、事前に設定したヘッダー情報を使用して画像を取得する処理が走ります。
ちなみに今回はサンプルの為onViewCreated内で実装していますが、プロジェクトにあった形で定義していただければと思います。
また、ログを出したい場合はbuilderに対してHttpLoggingInterceptorを設定することで、表示可能です。
さいごに
okhttpライブラリや画像を非同期で読み込むライブラリなどはもはや必須とも呼べるライブラリですよね。
それぞれの設定などで覚えておくと便利な実装は他にもありますので、需要があるようであれば今後も記事にしていきたいと思います。