버튼에 대한 상태를 생각해봅시다.
여러가지의 상태가 있는데 그 여러 상태에 대해서 버튼에 다른이미지를 보여줄 수 있습니다.

버튼의 상태
 default   아무것도 아닌 상태 
 pressed     누르고 있는 상태 
 focused   누르고 있진 않았지만 포커스가 주어진 상태 
 selected   선택된 상태  

이렇게 네가지의 상태가 있습니다.
이 네가지 상태에 대해서 각각 다른 이미지를 보여주기 위해서는 네가지의 이미지가 있어야 합니다.

저는 보통 3가지의 이미지를 두고, 
default, pressed, focused 또는 
default, pressed, selected 에 사용합니다.



이미지 파일을 준비합니다.
이미지들은 res 소스에 넣어 줍시다.

res/drawable/button_change.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/btn_press" /> <!-- pressed -->
    
    <item android:state_selected="true" 
        android:drawable="@drawable/btn_select" /> <!-- selected -->
    
    <item android:drawable="@drawable/btn_default" /> <!-- default -->
</selector>

main.xml
<ImageButton
    android:id="@+id/main_btn_change"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_change"
/>


ButtonActivity.java
package com.button;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
 
public class ButtonActivity extends Activity implements OnClickListener 
{
    ImageButton btn_change;
     
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        btn_change = (ImageButton)findViewById(R.id.main_btn_change);
        btn_change.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v)
    {
        switch(v.getId())
        {
        case R.id.main_btn_change :
            btn_change.setSelected(true);
            break;
        }
    }
}


출처:http://croute.me/288

'Android > 기본' 카테고리의 다른 글

ToggleButton이 ON/OFF 될 때 버튼의 이미지를 변경하는 예제  (0) 2012.05.15
Eclipse Phone test  (0) 2012.05.14
Android 9 patch  (0) 2012.05.14
예비  (0) 2012.04.28
Android 메인로딩 페이지 만들기  (0) 2012.04.28

+ Recent posts