Мне нужно показать нажатие кнопки на фигуре, которая является моим фоном для моей кнопки

#android #button #selector #shape

#Android #кнопка #селектор #фигуры

Вопрос:

Это моя фигура

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80000000"
        android:endColor="#80FFFFFF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="10dp" />
</shape>
  

Это то, что я хочу для нажатия кнопки

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80FFFFFF"
        android:endColor="#80000000"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="10dp" />
</shape>

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
 </selector>
  

Я попробовал этот код для ссылки на две фигуры, но когда я установил его в качестве фона, он просто сделал мою кнопку по умолчанию серой.

и я добавил селектор на фон моей кнопки, он имеет правильную непрозрачность, как есть, но мне нужно, чтобы он отображал другой цвет (например, белый или что-то в этом роде) при нажатии.

у кого-нибудь есть идеи?

Ответ №1:

Я делаю это таким образом:

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_bg_pressed"/>
   <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_bg_pressed"/>
   <item android:state_focused="true" android:drawable="@drawable/btn_bg_selected"/>
   <item android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent"/>
</selector>
  

Это то, что я обычно использую для своей темы

Комментарии:

1. Спасибо за это — что такое btn_bg_pressed и btn_bg_selected? это картинки?

2. Спасибо! Я просто заменил ее на свои фигуры, и это работает — ну, это работает на эмуляторе, а не на моем телефоне — но я подозреваю, что это мой телефон :).