2013-05-14 1 views
0

У меня есть некоторые проблемы, чтобы добавить синий цвет над кнопкой, когда пользователь нажмет ее. Он работает, если для этой кнопки нет выделенного фона, но в моем случае я должен добавить пользовательский фон, и я хочу синий цвет, когда пользователь нажимает кнопку. Вот мой кодГоло тема и пользовательский фон для моей кнопки

<Button 
    android:id="@+id/create_profile" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/info_account" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/btn_create_profile" /> 

ответ

1

Синий цвет не то, что платформа привлекает для вас. Стандартные кнопки имеют выделение селектора в качестве фона, что включает в себя набор изображений для представления. Таким образом, для кнопки, например, это стандартное изображение кнопки, нажатие кнопки изображения (с синим наложением выше), отключено (наполовину прозрачное) и т. Д. Кнопка знает, что это текущее состояние и отображает соответствующее изображение.

Так что вы хотите сделать, это нарисовать нажатии кнопки себя и создать селектор рисуем так:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true" android:drawable="@drawable/your_pressed_button/> 
    <item android:drawable="@drawable/your_normal_button/> 

</selector> 

Я считаю, что стоит читать о Drawable Resources. Вы также можете найти примеры состояний кнопок, созданных here.

+0

Так что мне нужно создавать разные чертежи для разных состояний? Нет простого способа сообщить пользователю, что он нажимает кнопку? – mrroboaat

+0

Нет. Единственное, что я вижу, это наследование компонента Button и рисование синего наложения поверх него на холсте. Но я лично избегал этого. – EvilDuck

+0

Хорошо! Я знаю селектор, но все мои кнопки имеют пользовательскую возможность рисования, поэтому для каждой кнопки я должен создать xml-файл. – mrroboaat

0

Вы должны сделать заказ вытяжки:

Для этого нужно просто создать файл XML в вашей вытяжке папки и написать:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:state_pressed="false" 
     android:drawable="@drawable/ic_back" /> 

    <item android:state_pressed="true" 
     android:drawable="@drawable/ic_back_pressed" /> 

    <item android:state_focused="true" 
     android:drawable="@drawable/ic_back_pressed" /> 

</selector> 

и теперь установить эту вытяжку в фоновом режиме вашей кнопки.

Здесь, в нормальном состоянии фоне ID ic_back и прессуют и фокус состояние фона ic_back_pressed

Для создания твердых рисуем формы (например, если вы хотите однотонный Backround в вытяжке вы можете пойти here ..)