Android: макет -> селектор кнопок -> кнопка не становится меньше - PullRequest
0 голосов
/ 29 августа 2011

Итак, у меня есть эта проблема. Я сделал кнопку и файл селектора кнопки .xml, и все в порядке, кроме одной вещи.

То, что я хочу, чтобы произошло: когда вы нажимаете (или выбираете) кнопку, кнопка становится меньше (если быть точным, она изменяется на файл меньшего размера .png).

Что происходит: когда вы нажимаете (или выбираете) кнопку, кнопка не становится меньше, она растягивается, чтобы соответствовать родительскому элементу (в целом размер остается неизменным). Я думаю, что это как-то связано с неправильными параметрами макета. Не могли бы вы помочь мне? Вот некоторый код:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/listbg"
    android:paddingTop="110dip"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="horizontal">
    <ScrollView 
        android:id="@+id/scrollView1"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content">
    <RelativeLayout 
        android:id="@+id/linearLayout1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center_horizontal">
        <Button android:layout_height="wrap_content"
            android:id="@+id/Button1" 
            android:background="@drawable/placestovisit"
            android:state_pressed="true"
            android:layout_width="wrap_content" 
            android:layout_alignParentTop="true"/>
        <!-- This is the button I am talking about -->
        <Button android:layout_height="wrap_content"
            android:id="@+id/Button2" 
            android:background="@drawable/mostpopular_button"
            android:layout_width="wrap_content" 
            android:layout_below="@+id/Button1"/>

1 Ответ

1 голос
/ 29 августа 2011

Добавьте это ко всем вашим кнопкам:

     android:onClick="doButtonAction"

Сделайте это в своей деятельности для макета кнопки

public void doButtonAction(View view)
{
   Button yourButton = (Button)findViewById(view.getId());
   yourButton.setScaleX(.8);
   yourButton.setScaleY(.8);
   //do button stuff here
}

Если это не сработает само по себе, возможно, попробуйте явно установить высоту и ширину кнопки, например:

     android:layout_height="50px"
     android:layout_width="150px"

Может случиться, что отказ от использования Wrap Content предотвратит растяжение.

...