Ich habe android.support.v4.widget.CircleImageView
lange bemerkt. Jedes Mal, wenn ich ImageView
in einer runden Form verwenden möchte, würde CircleImageView
in meinem Kopf erscheinen. Ich habe versucht, es für viele Male zu benutzen, aber jedes Mal habe ich versagt. Weil die Zugriffsberechtigung von android.support.v4.widget.CircleImageView
default ist, was bedeutet, dass nur Klassen im selben Paket mit CircleImageView
, nämlich android.support.v4.widget
, darauf zugreifen können.
Ich kann jetzt nicht verstehen, dass round ImageView
gemeinsam verwendet wird. Warum sollte CircleImageView
nicht auf public gesetzt werden, damit Entwickler ein ImageView
nicht in ein Round ImageView überschreiben müssen? Ist es nicht das Google Android Team, das uns dazu zwingt, Räder neu zu erfinden ?
Oder weiß ich das nicht CircleImageView
gut?
Irgendwelche Tipps werden geschätzt. Vielen Dank im Voraus.
Ich habe versucht, Quellcodes von android.support.v4.widget.CircleImageView
zu kopieren und einzufügen, um sie so zu veröffentlichen:
Sieht gut aus, oder? Es hat keine benutzerdefinierten Attribute und scheint in der Lage zu sein, als normales ImageView
verwendet zu werden.
Aber wenn Sie es versucht haben, werden Sie herausfinden, dass NoSuchMethodException
geworfen wird. Diese Ausnahme impliziert, dass notwendige Konstruktoren nicht überschrieben werden. So dass Sie es nicht einmal als normale View
instanziieren können.
Nachdem ich diese Quelltexte gelesen habe, merke ich, dass CircleImageView
nur Schatten hinter ImageView
hinzufügt, deren Ergebnis kein RoundCornerImageView
oder RoundImageView
ist. Wenn ich also ein RoundImageView
haben möchte, muss ich diese Klasse vergessen und diesen Effekt durch Überschreiben eines ImageView
implementieren.
Endlich gibt es den Dateikommentar, der auf die Verwendung von android.support.v4.widget.CircleImageView
hinweist:
Private Klasse erstellt, um Probleme mit Animationslistenern zu umgehen aufgerufen werden, bevor die Animation tatsächlich abgeschlossen ist und unterstützt wird Schatten auf älteren Plattformen.
Und ich hoffe, niemand wird so eine dumme Frage noch einmal stellen und es hier enden lassen, ^ _ ^, Haha ~
Gemäß der Dokumentation ist diese Klasse eine private Klasse, die für die Arbeit verwendet wird und wir können sie nicht instanziieren. Kann sein, dass die Klasse früher entfernt wird, als ich vermute.
Es gibt Möglichkeiten, den kreisförmigen Hintergrund für eine Ansicht zu erstellen.
file: drawable / contact_badge_round.xml
%Vor%Dann erstellen Sie in Ihrem Layout einen Button und legen Sie den Hintergrund als contact_badge_round
fest %Vor%