'안드로이드'에 해당되는 글 31건

안드로이드 어플리케이션을 제작할 때 많이 만들어 사용하는 것이 아마도 버튼일 것입니다. 

그냥 일반 버튼을 사용하는 것보다 버튼이 눌려졌을 때, 선택되어졌을 때 이미지를 다르게 하거나 컬러를 다르게 하는 경우가 많을텐데요. 그럴때 사용할 수 있는 selector 를 가지고 왔습니다.

방법은 이렇습니다. 먼저, res > drawable > btn_selector.xml 파일을 만듭니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>  
<selector  
xmlns:android="http://schemas.android.com/apk/res/android">   
    <item  
       android:state_enabled="false" 
       android:drawable="@drawable/btn_enabled" /
    <item 
       android:state_selected="true"               
       android:drawable="@drawable/btn_selected" /
    <item                        
       android:state_pressed="true"                   
       android:drawable="@drawable/btn_pressed" /
    <item                        
       android:state_focused="true"                     
       android:drawable="@drawable/btn_focused" /
    <item                     
       android:state_selected="false"                    
       android:drawable="@drawable/btn_normal" />  
    <item                          
       android:state_checked="true"                     
       android:drawable="@drawable/btn_checked" />  
 </selector>   
 
 
cs

<btn_selector.xml>


파일을 만든 후, 위 코드를 넣으셔야 합니다. 그리고 나서, 버튼이 그려진 xml 파일로 이동합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<Button
                android:id="@+id/sun_btn"
                android:layout_width="0dp"
                android:layout_weight="0.8"
                android:layout_height="wrap_content"
                android:text="@string/sunday"
                android:background="@drawable/btn_selector"/>
<Button
                android:id="@+id/mon_btn"
                android:layout_width="0dp"
                android:layout_weight="0.8"
                android:layout_height="wrap_content"
                android:text="@string/monday"
                android:background="@drawable/btn_selector"/>
 
cs

<activity_main.xml>


위 코드처럼, button의 android:background="@drawable/btn_selector" 로 속성을 정해줍니다. 

이렇게 하고 난뒤, 해당 java파일에서 해주셔야 할 내용이 있습니다.


1
2
3
4
5
6
7
8
9
10
11
 @Override
    public void onClick(View view) {
        switch(view.getId())
        {
            case R.id.wendes_btn:
 
                mBtn.setSelected(!mBtn.isSelected());         
                break;
        }
    }
 
cs

<MainActivity.java>


위 코드는 MainActivity.java 파일에서 버튼이 눌릴때마다 selected 값을 달리주는 코드인데요. 이렇게 주시면, 눌려진 버튼이 다시 안 눌려졌다가 를 반복하게 됩니다. 

즉, normal <-> selected 를 반복하게 된다는 것입니다. 이런 코드없이 단순이 btn_selector.xml 파일만 적용해서는 효과를 보실 수 없습니다.

참고 부탁드립니다.

블로그 이미지

미네르바98

안드로이드와 영화 리뷰, 생활정보에 관한 내용을 기재합니다.

,