Пример селектора Android ImageButton

Пример селектора 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».

  1. button_normal_green.png - кнопка изображения по умолчанию.

  2. button_focused_orange.png - Отображается, когда кнопка находится в фокусе, например, когда клавиатура телефона перемещается (фокус) на этой кнопке.

  3. 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)

normal button

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

button is focused

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

button is pressed

Скачать исходный код

Скачать -Android-ImageButton-Selector-Example.zip (23 КБ)