To pytanie jest w pewnym sensie kontynuacją my last question.Wyrównanie w pionie tekstu w widoku tekstowym za pomocą złożonego rysunku
Mój problem jest prawie taki sam, z tym wyjątkiem, że zamiast oddzielać obraz i tekst w różnych widokach (mianowicie ImageView i TextView) nauczyłem się, że mogę użyć atrybutu android:drawableLeft
, aby ustawić obraz "dla" mojego tekstu (sugestia została mi wskazana przez Eclipse z ikoną ostrzeżenia na linii LinearLayout).
Myślałem, jedyną różnicą jest to, że zamiast ustawiania ImageView z setImageResource()
metodą byłoby po prostu ustawić TextView na drawableLeft
nadana metodą setCompoundDrawablesWithIntrinsicBounds()
. Zamiast tego, kiedy wprowadziłem zmianę, zostałem przeniesiony z powrotem do pierwotnego problemu: tekst jest wyrównany do górnej krawędzi widoku, a nie do środka.
To właśnie moja TextView wygląda następująco:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/account_login"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/pm_gmail"
android:drawablePadding="8dp"
android:text="[email protected]"
android:paddingLeft="16dp"
android:layout_gravity="left|center_vertical" />
<View
android:layout_width="fill_parent"
android:layout_height="1dip"
android:layout_centerVertical="true"
android:layout_below="@id/account_login"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="5dp"
android:background="#DDDDDD" />
</RelativeLayout>
Drugi View
tylko separator.
... i to właśnie układ wygląda po ustawieniu powyższe atrybuty: (nie mam wystarczająco dużo reputacji, aby opublikować jeszcze zdjęć, więc tutaj jest link do niego)
(Wystarczy jasne, to tylko statyczny przykład: Mój tekst i obraz są dynamicznie ustawiane w kodzie w czasie wykonywania).
Każda pomoc jest bardzo doceniana.
Dang it! Dlaczego zawsze musi być tak proste, ale nie rozumiem? @Frank N. Stein, Czy możesz wyjaśnić mi różnicę? I nie chcesz odpowiedzieć na pytanie, więc mogę to zaakceptować? –
Po prostu zrobiłem. Wyjaśnienie jest proste. –