Wie kann ich dies mit Glide? Ich möchte cache
Bild, um es auch ein anderes Mal zu verwenden. Danke im Voraus.Hintergrundbild auf Relative Layout mit Glide in Android setzen
Antwort
Sie können ein Bild in einem RelativeLayout wie folgt laden. Ich zeige Ihnen nur den schwierigen Teil, der ein Bild in den Hintergrund stellt.
Für Glide Version vor 4.X
Glide.with(this).load(imageViewPath).asBitmap().into(new SimpleTarget<Bitmap>(relLayoutWidth, relLayoutHeight) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
Drawable drawable = new BitmapDrawable(context.getResources(), resource);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
yourRelativeLayout.setBackground(drawable);
}
}
});
Für Caching, auf diese Seite verweisen: Caching and Cache Invalidation.
Update für Gide Weiter v4:
GlideApp.with(this).load(R.drawable.backgroundimage).into(new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
yourRelativeLayout.setBackground(resource);
}
}
});
Ich denke, der beste Weg, es funktioniert mit Ihrer eigenen ViewTarget Implementierung zu erreichen, weil diese Klasse spezifische Methoden hat von Glide automatisch in verschiedenen Szenarien behandelt werden.
Die abstrakte Implementierung für ViewGroup (LinearLayout, RelativeLayout usw.).
Die spezifische Implementierung, in diesem Fall für LinearLayout.
public class LinearLayoutTarget extends ViewGroupTarget<Bitmap> {
private Context context;
public LinearLayoutTarget(Context context, LinearLayout linearLayout) {
super(linearLayout);
this.context = context;
}
/**
* Sets the {@link android.graphics.Bitmap} on the view using
* {@link android.widget.ImageView#setImageBitmap(android.graphics.Bitmap)}.
*
* @param resource The bitmap to display.
*/
@Override
protected void setResource(Bitmap resource) {
view.setBackground(new BitmapDrawable(context.getResources(), resource));
}
}
Um mit zu arbeiten.
Glide.with(this.getApplicationContext())
.load(R.drawable.your_image)
.asBitmap()
.into(new LinearLayoutTarget(this.getApplicationContext(), (LinearLayout) yourLinearLayoutInstanceHere));
Oder noch einfacheres Arbeiten ohne Bitmap.
Die spezifische Implementierung.
public class LinearLayoutTarget extends ViewGroupTarget<Drawable> {
public LinearLayoutTarget(LinearLayout linearLayout) {
super(linearLayout);
}
/**
* Sets the {@link android.graphics.Bitmap} on the view using
* {@link android.widget.ImageView#setImageBitmap(android.graphics.Bitmap)}.
*
* @param resource The bitmap to display.
*/
@Override
protected void setResource(Drawable resource) {
view.setBackground(resource);
}
}
Um zu arbeiten.
Glide.with(this.getApplicationContext())
.load(R.drawable.your_image)
.into(new LinearLayoutTarget((LinearLayout) yourLinearLayoutInstanceHere));
Eigentlich sollte 'ViewGroupTarget
- 1. Relative Layout Android
- 2. Android Relative Layout-Zentrieren
- 3. Wie in Relative Layout Android Studio überlappen
- 4. Android Glide Bilddatei laden Überlagerung anwenden und auf Bildansicht setzen
- 5. Relative URL für Hintergrundbild
- 6. Android Layout-Hintergrundbild und Farbe
- 7. Hintergrundbild nicht in Android-Layout wiederholen
- 8. Relative Layout-alignParentLeft vs alignParentStart
- 9. Android Layout Ausgabe - relative Breite in Prozent mit Gewicht
- 10. Android Relative Layout-zirkuläre Abhängigkeiten Fehler
- 11. Wie man eine Ansicht über andere in Relative Layout programmatisch in Android setzen?
- 12. ImageView adjustViewBounds funktioniert nicht mit Relative Layout
- 13. JQuery - Hintergrundbild auf Bildobjekt setzen
- 14. Relative Layout-Ausrichtung Priorität
- 15. Layout-Vorschau-API in Android Studio setzen
- 16. Relative-Layout nicht
- 17. Benutzerdefinierte Ansicht Erweiterung Relative Layout-
- 18. Android Relative Layout kann kein Bild in der Mitte machen
- 19. Android Glide Context Fehler
- 20. Glide nimmt manchmal das gesamte Layout
- 21. Android Glide Platzhaltergröße
- 22. Hintergrundbild auf einen Blob setzen: URI
- 23. Unterschied zwischen Frame und Relative Layout?
- 24. CSS: Element relative Größe macht Hintergrundbild verschwinden
- 25. Hintergrundbild über Text setzen?
- 26. xamarin.forms Hintergrundbild für Seite aus Datei in Android setzen
- 27. Symfony 3 Hintergrundbild mit CSS setzen
- 28. Symfony 2 Hintergrundbild mit CSS setzen
- 29. Setzen Sie ein eigenes Layout in Popup-Fenster in Android
- 30. Multitasking mit Glide
Warum wird 'Build.VERSION.SDK_INT> = Build.VERSION_CODES.JELLY_BEAN' benötigt? – jaynp
@ dal102 das war für meine app spezifische Bedürfnisse –
Ohne es werden Sie Warnung 'Anruf erfordert API-Ebene 16 (aktuelle min ist XX): android.view.View # setBackground' -> so wird diese Lösung nur auf JELLY_BEAN und funktionieren höhere API – thorin86