Полное игнорирование изображения DPI.Это не имеет значения, все, что вам нужно знать, это размер пикселя.На самом деле я бы предложил создать изображение NinePatch для использования в качестве фона кнопки.На самом деле вам понадобится несколько из них, чтобы поместить в StateListDrawable , поскольку именно так определяются различные состояния фокуса (например, нажато, фокусировано).Получив NinePatch, просто создайте LinearLayout следующим образом:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 1"
android:layout_weight="1"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 2"
android:layout_weight="1"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 3"
android:layout_weight="1"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 4"
android:layout_weight="1"
/>
</LinearLayout>
Установите все кнопки на fill_parent
и присвойте им одинаковый вес.Они растянутся, чтобы равномерно прилегать к родителю, и вам не нужно беспокоиться об указании постоянного пикселя или размера провала.Кроме того, он будет равномерно распределен на любом устройстве Android, независимо от разрешения.