В моем файле xml макета я создал экран с тремя кнопками с фоном, теперь, когда пользователь нажимает на него. Он не показывает никаких знаков, которые нажаты Как я могу достичь этой помощи.
Заранее спасибо
Вот ответ.
Чтобы указать различные состояния кнопок (сфокусированные, выбранные и т.д.), вы можете определить другое изображение для каждого состояния
Сохраните XML файл в папке res/drawable/folder проекта, а затем ссылайтесь на него как на чертеж для источника вашего ImageButton (в атрибуте android: src). Android автоматически изменит изображение в зависимости от состояния кнопки и соответствующих изображений, определенных в XML.
<?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>
Не уверен, но нам нужно установить hover на xml
<item
android:color="hex_color"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
создайте эти три файла xml в папке с возможностью переноса. custom_background_focus.xml
{
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#111111" />
<gradient
android:angle="225"
android:endColor="#fcfcfc"
android:startColor="#fcfcfc" />
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp" />
</shape>
custom_background_normal.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#333333" />
<gradient
android:angle="225"
android:endColor="#999999"
android:startColor="#999999" />
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp" />
</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/custom_background_focus" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/custom_background_focus" /> <!-- focused -->
<item android:drawable="@drawable/custom_background_normal" /> <!-- default -->
</selector>
Привет всем, мне удается найти ответ сам. что я сделал
final Button home = (Button) findViewById(R.id.btnmaphome);
home.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
home.setBackgroundResource(R.drawable.lodclick);
// rest of the code
}
});
здесь у меня есть другое изображение, и я установил его как фон, когда кнопка нажала другое изображение, заданное в качестве фона на кнопке, и кажется, что кнопка была сфокусирована. Thanx для всех.