Фон Android + текст + значок для кнопки
Я хотел бы иметь изображение, установленное для фона текста на нем и значок в левой части текста. Очень легко в iPhone, но не могу понять, как это сделать в Android, чтобы изменить размер этой кнопки и правильно сохранить значок + положение текста и расстояние.
iPhone:
Андроид у меня такой:
XML-код:
<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" />
Взял код отВот.
Если я используюandroid:drawableLeft
, чем значок перейдет в самую левую часть.
Если я начну играть с полужестким заполнением, тогда я по-другому посмотрю на diff devives: (телефон и стол)
Если я добавлюandroid:gravity="left|center_vertical"
чем это будет выглядеть так:
Текст является переменным: он изменится, когда пользователь изменит язык.
Как это сделать правильно?
Я не хочу опускать чей-либо ответ, но, пожалуйста, прочитайте вопрос и не предлагайте то, что я уже пробовал. Также сказано, что исправленные исправления не работают хорошо.
Это не домашняя работа, а часть коммерческого программного обеспечения.
Вот предложенный код из ответов:
<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>
Как вы думаете, как это будет выглядетьandroid:layout_marginLeft="10dip"
на галактике с4? Вот предварительный просмотр:
Это не то, что я спросил. «dip», «dp» или «px» не должны использоваться нигде в качестве расстояния слева, сверху, потому что телефоны имеют HPDI, экран меньшего размера, а планшеты имеют MDPI и широкие разрешения. Simple не работает на mdpi и xxhdpi.
Низам ответ очень близко к хорошему решению: