Форма кнопки в android изменяется нежелательно при нажатии

Я пытаюсь создать настраиваемую кнопку определенной формы, чтобы переключать ее текст и цвета фона кнопки. Но когда я делаю это, форма кнопки меняется, когда я нажимаю ее.
Это мой activity_main.XML

<Button
    android_id="@+id/button1"
    android_layout_width="wrap_content"
    android_layout_height="wrap_content"
    android_padding="10dp"
    android_textColor="#5e7974"
    android_background="@drawable/mybutton"
    android_text="Buttons"
    android_layout_centerVertical="true"
    android_layout_centerHorizontal="true"
    android_onClick="changecolorbutton" />

Файл в папке my drawable с именем mybutton.XML

<selector  >
<item android_state_pressed="true" >
    <shape android_shape="rectangle"  >
        <corners android_radius="7dip" />
        <stroke android_width="2dip" android_color="#5e7974" />
        <gradient android_angle="-90" android_startColor="#5e7974" android_endColor="#5e7974"  />
    </shape>
</item>
<item android_state_focused="true">
    <shape android_shape="rectangle"  >
        <corners android_radius="3dip" />
        <stroke android_width="1dip" android_color="#5e7974" />
        <solid android_color="#58857e"/>
    </shape>
</item>
<item >
    <shape android_shape="rectangle"  >
        <corners android_radius="7dip" />
        <stroke android_width="2dip" android_color="#5e7974" />
    </shape>
</item>

Моя Основная Деятельность.java выглядит так

Button button;
public void changecolorbutton(View v)
{
    Button bt= (Button) findViewById(R.id.button1);
    bt.setTextColor(Color.WHITE);
    bt.setBackgroundColor(Color.parseColor("#5e7974"));
    //bt.setBackgroundResource(R.drawable.buttonshape); -> i tried to change shape again but doesnt work
}

Когда я запускаю код, цвета кнопки меняются так, как я хочу, но форма кнопки становится ее значением по умолчанию после нажатия кнопки.

1 ответ

  1. Не могу добавить комментарий. Поэтому я публикую в качестве ответа.

    Почему bt.setBackgroundResource (R. drawable.buttonshape);?

    Почему не bt.setBackgroundResource (R. drawable.mybutton);?

    Я думаю, что кнопка пропускает формы, потому что вы переопределяете фон

    bt.setBackgroundColor(Color.parseColor("#5e7974"));