Ich möchte die Glide Android-Bibliothek verwenden, um ein Bild herunterzuladen und es anzuzeigen ImageView
.
In der vorherigen Version haben wir verwendet:
Glide.with(mContext).load(imgUrl)
.thumbnail(0.5f)
.placeholder(R.drawable.PLACEHOLDER_IMAGE_NAME)
.error(R.drawable.ERROR_IMAGE_NAME)
.crossFade()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
Aber ich habe Glide-Dokumentation gesehen:
es heißt
GlideApp.with()
stattdessen verwendenGlide.with()
Mein Anliegen ist ein fehlender Platzhalter, Fehler, GlideApp und andere Optionen.
ich benutze
compile 'com.github.bumptech.glide:glide:4.0.0'
Wo mache ich falsch? Mit Bezug auf hier .
Wie GlideApp.with()
wurde verwendet?
Die API wird im selben Paket wie die generiert AppGlideModule
und ist GlideApp
standardmäßig benannt. Anwendungen können die API verwenden, indem sie alle Ladevorgänge GlideApp.with()
anstelle von starten Glide.with()
:
GlideApp.with(fragment)
.load(myUrl)
.placeholder(placeholder)
.fitCenter()
.into(imageView);
android
android-layout
android-glide
Ritesh Bhavsar
quelle
quelle
Antworten:
Versuchen Sie es mit RequestOptions :
BEARBEITEN
Wenn
.setDefaultRequestOptions(requestOptions)
dies nicht funktioniert, verwenden Sie.apply(requestOptions)
:EDIT 2 Bonus
Hier sind einige andere Änderungen in Glide-4
requestOptions.circleCropTransform();
Cross fades()
GlideDrawableImageViewTarget
in Glide-4GifDrawable
als Zielparameterquelle
RequestOptions requestOptions = new RequestOptions().placeholder(R.drawable.ic_placeholder).requestOptions.error(R.drawable.ic_error);
Wenn Sie Glide-Paketabhängigkeiten
compile 'com.github.bumptech.glide:glide:3.7.0'
verwenden, sollten Sie den folgenden Code verwenden:Die neueste aktualisierte Version
compile com.github.bumptech.glide:glide:4.1.1
sollte dann den folgenden Code verwenden:Sehen Sie sich die neueste Version von Glide, Fehlerkorrekturen und Funktionen an .
quelle
Wenn Sie GlideApp verwenden möchten, müssen Sie den
dependencies
Anmerkungsprozessor wie im Screenshot hinzufügen :Fügen Sie dann eine AppGlideModule-Implementierung in Ihre Anwendung ein:
Vergessen Sie nicht die
@GlideModule
Anmerkung. Dann müssen Sie ein Projekt erstellen. UndGlideApp
wird automatisch generiert.quelle
Abhängigkeiten:
Fügen Sie eine entsprechend kommentierte AppGlideModule-Implementierung hinzu:
Wenn Sie die Jack-Option verwendet haben, müssen Sie außerdem die Vorschau von Android Studio 3.0.0 verwenden, um die folgenden ähnlichen Fehler zu vermeiden.
quelle
Wir müssen RequestOptions auch nicht verwenden.
Die generierte API fügt eine GlideApp-Klasse hinzu, die Zugriff auf die Unterklassen RequestBuilder und RequestOptions bietet. Die Unterklasse RequestOptions enthält alle Methoden in RequestOptions und alle in GlideExtensions definierten Methoden. Die RequestBuilder-Unterklasse bietet Zugriff auf alle Methoden in der generierten RequestOptions-Unterklasse, ohne apply verwenden zu müssen:
Verwenden von Glide : -
Eine Anforderung ohne die generierte API könnte folgendermaßen aussehen:
Verwenden von GlideApp : -
Mit der generierten API können die
RequestOptions
Aufrufe eingebunden werden:Sie können weiterhin die generierte RequestOptions-Unterklasse verwenden, um denselben Optionssatz auf mehrere Ladevorgänge anzuwenden. Die generierte RequestBuilder-Unterklasse ist jedoch in den meisten Fällen möglicherweise praktischer.
quelle
Arbeiten
quelle
Wenn Sie überall in Ihrer App einen gemeinsamen Platzhalter verwenden möchten, können Sie dies folgendermaßen tun:
Während wir GlideModule aus Glide v4 erstellen , können Sie diese Klasse in Ihr Projekt kopieren / einfügen, damit Sie die GlideApp- Klasse verwenden können (für weitere Schritte - folgen Sie diesen Anweisungen ) :
Sie können hier alle Anforderungsoptionen als Standard festlegen .
Durch die Schaffung dieser Klasse , die Sie nicht verwenden müssen ,
.placeholder
mitGlideApp
, wird es automatisch angewendet werden.quelle
quelle