2013-09-18 2 views
0

У меня есть кнопка создать так:кнопка не отображается корректно на Android 2.3

 <Button 
     android:id="@+id/sendBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Send" 
     android:padding="-5dp" 
     android:paddingBottom="-10dp" 
    android:background="@color/red"/> 

Вот как это выглядит в Android 4.0 и выше: http://i.imgur.com/2P9WEWp.png?1

Вот как это выглядит в Android 2.3: http://i.imgur.com/4oXSN2P.png?1

Как вы можете видеть, кнопка 2.3 кажется зажатой вместе и очень маленькой. Как я могу исправить это, поэтому новые версии и 2.3 по крайней мере одинаково похожи?

+0

Я думаю, что это связано с размером вашего изображения. –

+0

Думаю, это из-за версии wise Button размер по умолчанию –

ответ

1

Это о размере устройства, создать несколько values папку (values, values-sw600dp, values-v11 и т.д.) делают каждый из них имеет dimens.xml. В dimens.xml определяют различные значения заполнения. Затем в вашем файле макета используйте эти значения вместо жестко закодированных. например

<Button 
    android:id="@+id/sendBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:text="Send" 
    android:padding="@dimens/padding" 
    android:paddingBottom="@dimens/paddingBottom" 
    android:background="@color/red"/> 
+0

Спасибо! можете ли вы объяснить разные папки значений для меня? Какие устройства используют значения-sw600dp, values-v11 и т. Д.? Спасибо – user2779837

+0

sw600dp означает, что устройства с минимальной шириной 600dp будут использовать эту папку, вы можете изменить значение курса и sw = наименьшую ширину, также вы можете сделать это w600dp, что означает, что именно 600dp-устройства будут использовать его. и для v11 это означает, что устройства с уровнем API 11 будут использовать его, вы также можете изменить это –

1

Используйте положительные значения для заполнения, установите textColor атрибут для белого цвета:

<Button 
     android:id="@+id/sendBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Send" 
     android:padding="5dp" 
     android:paddingBottom="10dp" 
     android:background="@color/red" 
     android:textColor="#FFFFFF"/> 

Кроме того, использование android-holo-colors для генерации собственных стилей, селекторы для Button вводимых коэффициента для всех API.

0

Существует через два пути решения этой проблемы ..

1: необходимо поставить отступы все боковые.

<Button 
    android:id="@+id/sendBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:text="Send" 
    android:padding="5dp" 
    android:background="@color/red" 
    android:textColor="@android:color/white"/> 

2: необходимо указать фиксированный размер для этой кнопки.

<Button 
    android:id="@+id/sendBtn" 
    android:layout_width="60dp" 
    android:layout_height="40dp" 
    android:gravity="center" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:text="Send" 
    android:background="@color/red" 
    android:textColor="@android:color/white"/> 

Оба - это простой и удобный поиск.

Смежные вопросы