2015-05-18 2 views
0

Мне нужно использовать переключатель состояния. Я прочитал некоторые артикулы в Интернете по этому вопросу, но он все еще не работает.State button selector android

Код кнопки (от макета):

<Button 
    android:id="@+id/btn_shoot" 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    android:layout_column="0" 
    android:layout_gravity="left|bottom" 
    android:layout_row="2" 
    android:background="@drawable/button_style"/> 

код Selector (вытяжка):

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/button_pressed" 
      android:state_pressed="true" /> 
    <item android:drawable="@drawable/button_default" /> 
</selector> 

Спасибо за ваши ответы фьючерсов.

ответ

0

Вы можете попробовать этот учебник.

http://www.mkyong.com/android/android-imagebutton-selector-example/

Подготовьте 3 изображения для состояний кнопок, и поместить его в «/ вытяжке ресурсов» папку.

  • button_normal_green.png - Кнопка изображения по умолчанию.
  • button_focused_orange.png - отображать, когда кнопка сфокусирована, для пример, когда клавиатура телефона перемещается (фокусировка) на этой кнопке.
  • button_pressed_yellow.png - отображать при нажатии кнопки.

Теперь создайте новый XML-файл в папке «res/drawable /» в любом имени, которое вы хотите, в этом случае мы просто укажем имя как «new_button.xml». Этот файл определяет, какое состояние кнопки принадлежит какому изображению.

Теперь вы можете обратиться к этой кнопке с помощью этого идентификатора: @ drawable/new_button.

файл
<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@drawable/button_pressed_yellow" 
      android:state_pressed="true" /> 
     <item android:drawable="@drawable/button_focused_orange" 
      android:state_focused="true" /> 
     <item android:drawable="@drawable/button_normal_green" /> 
    </selector> 

Открыть «Рез/макет/main.xml», добавьте обычную кнопку, и прикрепить фоновое изображение выше «new_button» через «андроид: фон =" @ вытяжке/new_button»

.

Вы можете также использовать некоторые формы вместо images.Create трех различных форм для трех различных состояний кнопки.

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
<corners 
    android:radius="14dp"/> 
<gradient 
    android:angle="45" 
    android:centerX="35%" 
    android:centerColor="#7995A8" 
    android:startColor="#E8E8E8" 
    android:endColor="#000000" 
    android:type="linear"/> 
<padding 
    android:left="0dp" 
    android:top="0dp" 
    android:right="0dp" 
    android:bottom="0dp"/> 
<size 
    android:width="270dp" 
    android:height="60dp"/> 
<stroke 
    android:width="3dp" 
    android:color="#878787"/> 
</shape> 

Я надеюсь, что это помогает

+0

Я после этого учебника, но он по-прежнему не работает. – Osaky11

+0

Могу я знать, что вы пробовали, чтобы я мог вам помочь. – Victor

+0

Я использую решение, которое я написал в вопросе, ваше решение и множество других, найденных в Интернете. Но нажатое состояние в селекторе всегда игнорируется. Я пытался сделать это по-программному, это прекрасно работает. Но когда вы нажимаете на кнопку, и вы выдвигаете палец из кнопки (вы все еще нажимаете на экран), телефон держит ее нажатой. – Osaky11