Пример селектора Android ImageButton
Вlast Android tutorial вы используете «ImageButton», чтобы легко отображать «Button» с настроенным фоновым изображением. Тем не менее, вы можете сделать больше, чем просто изображение, Android позволяет изменять изображение кнопки в зависимости от различных состояний, таких как кнопка находится в фокусе или кнопка нажата.
Этот пример взят из статьиAndroid custom button с небольшими изменениями.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. Добавить изображения в ресурсы
Подготовьте 3 изображения для состояний кнопок и поместите их в папку «resource/drawable».
-
button_normal_green.png - кнопка изображения по умолчанию.
-
button_focused_orange.png - Отображается, когда кнопка находится в фокусе, например, когда клавиатура телефона перемещается (фокус) на этой кнопке.
-
button_pressed_yellow.png - Отображение при нажатии кнопки.
2. Добавить селектор для разных состояний кнопок
Теперь создайте новый XML-файл в папке «res/drawable/» с любым именем, которое вы хотите, в этом случае мы просто даем имя как «new_button.xml». Этот файл определяет, какое состояние кнопки принадлежит какому изображению.
Теперь вы можете ссылаться на эту кнопку с помощью этого идентификатора:@drawable/new_button.
Файл: res / drawable / new_button.xml
3. Кнопка Добавить
Откройте файл «res/layout/main.xml», добавьте обычную кнопку и прикрепите фоновое изображение к «new_button» через «android:background="@drawable/new_button»
Файл: res / layout / main.xml
4. Код код
Обычная кнопка с простым нажатием кнопки прослушивания.
Файл: MyAndroidAppActivity.java
package com.example.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import android.view.View;
import android.view.View.OnClickListener;
public class MyAndroidAppActivity extends Activity {
Button imageButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addListenerOnButton();
}
public void addListenerOnButton() {
imageButton = (Button) findViewById(R.id.imageButtonSelector);
imageButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MyAndroidAppActivity.this,
"ImageButton (selector) is clicked!",
Toast.LENGTH_SHORT).show();
}
});
}
}
5. Demo
Запустите приложение.
1. Результат, кнопка по умолчанию. (Button_normal_green.png)

2. Кнопка сфокусирована. (Button_focused_orange.png)

3. Кнопка нажата. (Button_pressed_yellow.png)

Скачать исходный код
Скачать -Android-ImageButton-Selector-Example.zip (23 КБ)