Tło Android + tekst + ikona przycisku
Chciałbym ustawić obraz na tle tekstu na nim i ikonę po lewej stronie tekstu. Bardzo łatwy w iPhone, ale nie można dowiedzieć się, jak to zrobić na Androidzie, aby zmienić rozmiar tego przycisku i odpowiednio trzymać ikonę + pozycję tekstu i odległość.
iPhone:
Android mam to:
Kod xml to:
<Button
android:id="@+id/btSettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/tvWhatever"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:background="@drawable/bt_general"
android:drawableTop="@drawable/settings_selected"
android:text="@string/settings"
android:textColor="#000000" />
Wziął kod ztutaj.
Jeśli używamandroid:drawableLeft
, niż ikona przejdzie do najbardziej lewej części.
Jeśli zacznę grać z półtwardymi paddingami, będę miał inne spojrzenie na devfi: (telefon i stół)
Jeśli dodamandroid:gravity="left|center_vertical"
niż będzie wyglądać tak:
Tekst jest zmienny: zmieni się, gdy użytkownik zmieni język.
Jak to zrobić poprawnie?
Nie chcę odrzucać niczyjej odpowiedzi, ale proszę przeczytać pytanie i nie sugerować tego, co już wypróbowałem. Powiedziano również, że zakodowane na stałe poprawki nie działają dobrze.
To nie jest praca domowa, ale część oprogramowania komercyjnego.
Oto sugerowany kod z odpowiedzi:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bt_general"
android:padding="20dip" >
<ImageView
android:id="@+id/xIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:src="@drawable/settings_selected" />
<TextView
android:id="@+id/xSettingsTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/settings"
android:textColor="#000000" />
</RelativeLayout>
Jak myślisz, jak będzie wyglądaćandroid:layout_marginLeft="10dip"
na Galaxy s4? Oto podgląd:
To nie jest to, o co prosiłem. „dip” lub „dp” lub „px” nie powinny być używane nigdzie jako odległość od lewej strony, ponieważ telefony mają HPDI, mniejszy ekran i tablety mają MDPI i szerokie rozdzielczości. Proste nie działa na mdpi i xxhdpi.
Odpowiedź Nizam jest bardzo blisko dobrego rozwiązania: