diadia

興味があることをやってみる。自分のメモを残しておきます。

Glideの使い方

内容

  1. 普通にGlideを使いたい場合 -> Glideを使う場合の諸設定
  2. GlideAppを使いたい場合 -> GlideAppを使いたい場合の諸設定

Glideを使う場合の諸設定

gradleに以下を設定

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.11.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}

(補足)GlideAppを使いたい場合には、annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'を記述しないでおくこと。

レイアウトファイルにImageViewを追加する。

        <ImageView
        android:id="@+id/show_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"/>   

アクティビティでImageViewオブジェクトを取得し、Glideを使ってImageViewに画像を表示する。

override fun onCreate(savedInstanceState: Bundle?) {

...割愛

// ImageViewオブジェクトを取得する
val iv_show_image = findByIdView&lt;ImageView&gt;(R.Id.show_image)

// 表示したい画像urlをString型データで変数定義する
val urlString = "https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Kotlin-logo.svg/144px-Kotlin-logo.svg.png"

// Glideライブラリを使用する
Glide.with(activity:this).asBitmap().load(urlString).into(iv_show_image)

}

GlideAppを使いたい場合の諸設定

GlideAppはcircleCrop()等のGlideでは使えない機能を使う場合に使われるモジュールである。 これを使うと画像を単に表示するだけでなく、画像を丸くくり抜いて表示したり編集された状態で画面表示する事ができるようになる。 JavaとKotlinではGlideAppを使う諸設定に違いがあったのでメモしておく。

gradleに以下を設定

dependencies {
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    kapt 'com.github.bumptech.glide:compiler:4.11.0'
}

このままではkaptでエラーが出てしまうので同ファイル(appレベルのgradleファイル)に

apply plugin: 'kotlin-kapt'

を追加する。こんな感じで、

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 29

...省略

次に適当なファイルにAppGlideModuleを拡張したクラスを定義する。 例えばMyAppGlideModule.ktというのを作って、MyAppGlideModuleを定義する。

package com.example.hoge


import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule

@GlideModule
class MyAppGlideModule : AppGlideModule(){

}

その後にBuildメニューのRebuildを実行する。
するとGlideAppというモジュールを使うことができるようになっている。

GlideApp.with(this).load(imageUrl).circleCrop().into(myImageView);

KotlinでGlideAppを使う場合の手順を説明した資料

Using Glide with Kotlin - Vlonjat Gashi - Medium

Java版GlideAppを使う場合の手順を説明した資料

Android用画像読み込みライブラリ、Glideを使ってみよう! | 株式会社ヌーラボ(Nulab inc.)

KotlinでGlideAppを導入できない問題に出くわした場合の対処に関する資料

cannot resolve symbol 'GlideApp' (GlideApp was not generated) · Issue #1945 · bumptech/glide · GitHub

Glideドキュメント

GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling