[Android] Picasso の代わりにGlideで大きい画像を扱ってみる

ImgeViewで画面に表示させるときに、元画像のサイズ(縦横)が大きいと表示しきれない事があります。このPicassoを使っていましたがライブラリーがうまくいかないようなので(2024/7現在)
Glideを代わりに使ってみます

Android Studio
2024.1.1




Glide

 

Glideは画像をネットからダウンロードしたり、ギャラリーなどでのキャッシュなど、いい具合に画像を扱ってくれます。機能的にはPicasoと似ていますが機能的には多少違いがあります
特にネットからの画像を取り込むときにはいすれも簡単に設定できます
 

 

大きいdrawableの画像を取り込む

 

例えばこのような 5760×3760 サイズの画像をImageViewで表示させてみます。
 
1x1.trans - [Android] Picasso の代わりにGlideで大きい画像を扱ってみる

img5760x3760

 

画像をres\drawable\に入れて、

 
これを古い機種ですが、Nexus5Xで試してみると

というエラーになりました。画像が大きいということです。
Pixel 3aではエラーにはなりませんでしたがワーニングが出ます。
因みに、Nexus5Xでは画像を1/4のimg1440x942では表示できました。

更に、画像を大きくして11520×7536のサイズでテストすると

Pixel 6a では

さすがにエラーになりました
5760×3760では問題ないのです

もっとも、こんな大きな画像はそれなりに画像を縮小して取り込むという手順を取ればいいだけなのですが、まあ面倒な場合はGlideを使うと簡単だということです

また、Androidはハイエンドからローエンドまで様々な機種があるので
機種によるパフォーマンス性能の違いは留意する必要があります。

 

Glideで大きい画像を取り込む

 

Glideで試してみます。
 
dependencyを設定します

build.gradle.kts

 
以前はこのように記述していればよかったのですが、こちらを参考に設定したいと思います

他のプロジェクトでライブラリを使用する
 
Library Dependencyではなく直接ファイルを設定すると可能でしたので
Gradleの中に、libs.versions.tomlがあるのでそこに設定します

libs.versions.toml

バージョン等は公式、Glide にて確認して適宜合わせてください。

これで
build.gradle.kts に以下のように設定が可能となります

後は、GlideのインポートをしてGlideの設定をすればできます

まとめてみると

MainActivity.java

レイアウト
activity_main.xml

 
これで実行すると、画像が表示されました。
 
1x1.trans - [Android] Picasso の代わりにGlideで大きい画像を扱ってみる

 

assetsから取り込む

 

Picasoがassetから取り込むのも非常にシンプルでしたがGlideは多少面倒です
詳しくは公式ドキュメントを参照してください

 

画像をダウンロード

 

画像をダウンロードする場合は非同期処理で実行しないといけないので、意外とコードも増えてしまいます。
Glideでは、これも画像のURLを指定すればダウンロードできてしまいます。
例として https://hoge-hoge.com/image/ 以下に画像を置いて試してみます。

 

ただし、Manifestの記述は必要です。
AndroidManifest.xml

pngも大丈夫です
yuka1000x1000.png
1x1.trans - [Android] Picasso の代わりにGlideで大きい画像を扱ってみる


 
 
 
References:
Glide
他のプロジェクトでライブラリを使用する

シェアする

  • このエントリーをはてなブックマークに追加

フォローする