Пример селектора 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 КБ)