Das Kamerasymbol ist die Standardeinstellung. Wenn Sie darauf klicken, hat der Benutzer die Möglichkeit, ein anderes Bild auszuwählen.
+1, weil diese Situation komplexer aussieht, als sie mit zusammengesetzten Drawables gehandhabt werden kann. Wenn Sie Romains Antwort nicht akzeptiert hätten, hätten Sie vielleicht eine ausführlichere Antwort erhalten.
– AlbeyAmakiir
7. August 2012 um 6:20 Uhr
Um die Antwort von Romain Guy zu erweitern, hier ein Beispiel.
Raffiniert. Aber was ist, wenn ich Eigenschaften für das Drawable festlegen muss, z. B. 60 DIP x 60 DIP?
– Kyle Clegg
25. April 2012 um 0:09 Uhr
Hey, sieh dir das an, ich musste nur suchen. stackoverflow.com/a/6671544/1224741
– QED
8. August 2012 um 1:40 Uhr
@KyleClegg, es ist mit einer benutzerdefinierten Bibliothek möglich. Siehe meine Antwort – stackoverflow.com/a/41347470/2308720
– Oleksandr
27. Dezember 2016 um 15:01 Uhr
Das letzte Commit dieses Projekts war vor drei Jahren, es wird nicht gepflegt, schätze ich.
– Luciano Brum
27. Januar 2021 um 12:40 Uhr
Romain Guy
Zusammenführen der TextView und die ImageView in eine, indem Sie TextView verwenden setCompoundDrawable*() Methoden oder mit android:drawableLeft.
Können Sie mir ein Beispiel nennen, das zeigt, wie das gemacht werden kann? Ich bin mir nicht sicher, wie alle Attribute in der ImageView in android:drawableLeft untergebracht werden können. Vielen Dank
– pdilip
9. Juli 2010 um 19:19 Uhr
Was ist mit ImageViews-Attributen wie scaleType ?
– neteinstein
30. August 2012 um 11:24 Uhr
Wie vergrößere ich den Abstand zwischen Bild und Text?
– Tharaka Nirmana
9. Oktober 2013 um 7:23 Uhr
setCompoundDrawable*() funktioniert nicht, verwenden Sie stattdessen setCompoundDrawablesWithIntrinsicBounds()
– Kimo_do
2. November 2013 um 23:40 Uhr
@Kimo_do, setCompoundDrawable() wird sich nicht um Ihr Drawable kümmern, so wie es ist, müssen Sie anrufen setBounds darauf (vgl API). Um es einzustellen, können Sie die vorherigen Grenzen mit abrufen TextView.getCompoundDrawables()auf den korrekten Drawable-Index zugreifen und schließlich aufrufen getBounds().
– Avinash R
5. Januar 2014 um 20:22 Uhr
QED
Ich dachte, ich würde versuchen, auch dafür ein paar zusätzliche Puntos zu bekommen: Sie können mit Padding zwischen dem Bild und dem Text hinzufügen android:drawablePadding. https://stackoverflow.com/a/6671544/1224741
Hinzufügen tools:ignore="UseCompoundDrawables" zu <LinearLayout>.
Oleksandr
Manchmal ist ein Austausch möglich ImageView (oder mehrere) und TextView mit einer TextView mit Compound Drawable(s). Es gibt NICHT viele Parameter, die mit nativer API und diesem auf Compound Drawable angewendet werden können TextViewRichDrawable-Bibliothekaber Wenn Sie eine TextView verwalten können, sollten Sie sie auf jeden Fall verwenden, anstatt LinearLayout zu verwenden.
Die Liste der Attribute und Parameter, die auf zusammengesetzte Drawables angewendet werden können:
Drawable’s Padding mit nativer API android:drawablePadding -> Verknüpfung
Hier ist ein Beispiel:
Amir Moaaviah
EIN LinearLayout die ein enthält ImageView und ein TextView kann effizienter als zusammengesetztes Drawable gehandhabt werden (eine einzelne TextViewVerwendung der drawableTop, drawableLeft, drawableRight
und/oder drawableBottom Attribute, um ein oder mehrere Bilder neben dem Text zu zeichnen).
Wenn die beiden Widgets mit Rändern gegeneinander versetzt sind, kann dieser durch einen ersetzt werden drawablePadding Attribut.
Es gibt einen Lint-Quickfix, um diese Konvertierung im Eclipse-Plugin durchzuführen.
Von: Offizielle Android-API-Dokumentation!
Vikas
Wenn ich den obigen Code befolgt habe, wird der Text in der TextView nicht richtig eingestellt. Sie müssen die Schwerkraft auf center|start setzen, um das zu erreichen, was in der gestellten Frage gezeigt wird.
+1, weil diese Situation komplexer aussieht, als sie mit zusammengesetzten Drawables gehandhabt werden kann. Wenn Sie Romains Antwort nicht akzeptiert hätten, hätten Sie vielleicht eine ausführlichere Antwort erhalten.
– AlbeyAmakiir
7. August 2012 um 6:20 Uhr