Фон 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.

Низам ответ очень близко к хорошему решению:

Ответы на вопрос(14)

Ваш ответ на вопрос