Weiß jemand, wie man mit Glide ein Bild mit abgerundeten Ecken anzeigt? Ich lade ein Bild mit Glide, weiß aber nicht, wie ich gerundete Parameter an diese Bibliothek übergeben soll.
Ich benötige ein Anzeigebild wie das folgende Beispiel:
android
android-glide
mr.boyfox
quelle
quelle
Antworten:
Glide V4:
Glide V3:
Sie können
RoundedBitmapDrawable
mit Glide für kreisförmige Bilder verwenden. Es ist keine benutzerdefinierte ImageView erforderlich.quelle
.centerCrop()
dir meinst du wahrscheinlich.circleCrop()
Überprüfen Sie diesen Beitrag, gleiten Sie gegen Picasso ...
Bearbeiten : Der verknüpfte Beitrag weist nicht auf einen wichtigen Unterschied in den Bibliotheken hin. Glide führt das Recycling automatisch durch. Weitere Informationen finden Sie im Kommentar von TWiStErRob .
quelle
public String getId()
Sie darauf, dass Sie nicht die im Code angezeigte Art und Weise verwenden, da für alle Bilder dieselbe ID zurückgegeben wird. Daher kann es vorkommen, dass beim Gleiten alte, abgerundete Bilder gesetzt werden, während ohne Transformationen das richtige Bild eingestellt wird! Ich weiß nicht, wie Gleiten funktioniert, aber es scheint, als würde es Bildtransformationen zwischenspeichern (um harte Berechnungen zu vermeiden, nehme ich an). Und die ID wird als ID des transformierten Bildes verwendet. Ich fügte dem Konstruktor eine URL des Bildes hinzu und machte die erwähnte Methode, die die resultierende ID zurückgab, wie:this.id = String.format("%s:%s",this.getClass().getSimpleName(),id);
Der einfachste Weg (erfordert Glide 4.xx)
quelle
.apply()
geht danach.load()
.Versuchen Sie es auf diese Weise
Code
XML
all_circle_white_bg.xml
quelle
Es ist sehr einfach. Ich habe gesehen, dass die Glide-Bibliothek ihre sehr gute Bibliothek und Essay-Basis auf der Volley-Google-Bibliothek basiert
verwendet diese Bibliothek für eine abgerundete Bildansicht
https://github.com/hdodenhof/CircleImageView
jetzt
// Für eine einfache Ansicht:
// Für eine Liste:
und in XML
quelle
Die anderen Lösungen haben bei mir nicht funktioniert. Ich fand, dass sie alle erhebliche Nachteile haben:
Es ist wirklich interessant, dass ich nach dem Herumfummeln die Fresko-Bibliotheksseite über abgerundete Ecken und Kreise gefunden habe, in der sie im Grunde die gleichen Einschränkungen auflisten und mit der Aussage schließen:
Unglaublich, dass wir derzeit noch keine echte Lösung haben. Ich habe eine alternative Lösung basierend auf dem Link, den ich oben gesetzt habe. Der Nachteil bei diesem Ansatz ist, dass davon ausgegangen wird, dass Ihr Hintergrund einfarbig ist (die Ecken sind nicht wirklich transparent). Sie würden es so verwenden:
Das Wesentliche ist hier und der vollständige Code hier:
quelle
Jetzt können Sie in Glide V4 CircleCrop () direkt verwenden
Eingebaute Typen
quelle
Verwenden Sie diese Transformation, es wird gut funktionieren.
quelle
Zum Glide 4.xx.
verwenden
von doc heißt es das
quelle
Nach dieser Antwort ist der einfachste Weg in beiden Sprachen:
Kotlin:
Java:
Dies funktioniert unter Glide 4.XX
quelle
Die Antwort von Roman Samoylenko war korrekt, außer dass sich die Funktion geändert hat. Die richtige Antwort ist
quelle
Ich habe eine einfache Lösung für das Hinzufügen eines Rahmens über der Bildansicht gefunden, in der die Farbe einen Farbverlauf über dem Bild festlegen oder hinzufügen möchte.
SCHRITTE:
imgPlaceHolder
benötigen Sie ein weißes Bild oder eine Farbe, die Sie einstellen möchten.Nachdem Sie diesen Code in die XML-Datei eingefügt haben, setzen Sie die folgende Zeile in die Java-Datei.
Dadurch wird der Rand der Bildansicht einfach ohne zusätzlichen Abstand und Rand erstellt.
HINWEIS : Das weiße Bild ist für den Rand obligatorisch, da es sonst nicht funktioniert.
Viel Spaß beim Codieren :)
quelle
Mit der Gleitbibliothek können Sie diesen Code verwenden:
quelle
Ich habe früher danach gesucht und es auf sehr einfache Weise gemacht. Ich hoffe, das würde dir gefallen.
CircleTransform.java
fade_in.xml zum Einblenden von Animationen.
endlich diese Methode aufrufen.
quelle
Sie können einfach den RoundedCornersTransformation-Konstruktor aufrufen, der über eine enT-Eingabe von CornerType verfügt. So was:
Aber zuerst müssen Sie Ihrem Projekt Gleittransformationen hinzufügen .
quelle
Hier ist eine modularere und übersichtlichere Methode, um Ihre Bitmap in Glide zu kreisen:
BitmapTransformation
folgt erweitern und überschreibentransform
:Für Glide 4.xx.
Für Glide 3.xx
Hoffe das hilft :)
quelle
quelle
quelle
Kreisausschnitt + Platzhalter + Überblendung
quelle
Glide Version 4.6.1
quelle
In diesem Fall muss ich Schatten hinzufügen und die imageView-Höhe funktioniert nicht
Implementierung "com.github.bumptech.glide: glide: 4.10.0"
XML
Form zeichnbar
Gleitkonfiguration
quelle
Sie müssen CircularImageView verwenden, um diesen Bildtyp anzuzeigen ...
Sie verwenden die Glide-Bibliothek, mit der Bilder geladen wurden.
Erstellen Sie eine Klassendatei in Ihrem Projekt und laden Sie sie in Imageview ... und Sie erhalten das gewünschte Ergebnis ...
Versuchen Sie, dem folgenden Code zu folgen ...
XML
CircularImageView.java
Hinweis :
Sie können verwenden
oder
Es hat keine Auswirkungen auf Ihre anderen Bibliotheken. Sie müssen Ihren Code zum Herunterladen von Bildern oder anderen Elementen nicht ändern. Es kann auch einfach mit XML definiert werden.
quelle