마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

XML으로 버튼 눌림 효과를 적용했는데 효과가 적용이 안되요,

0 추천
버튼 클릭하기 효과를 XML을 사용하여 구현했는데요 같은 XML코드 인데 어떤건 작동하고 어떤건 작동을 안하네요 ..
 
//XML명 flour_button_click.xml
<?xml version="1.0" encoding="utf-8"?>
    
    <item android:state_pressed="true" android:drawable="@drawable/flour_on"></item>
<item android:state_focused="true" android:drawable="@drawable/flour_off"></item>
    <item android:drawable="@drawable/flour_on"/>
</selector>
 
   
이런식으로 구현하고 레이아웃에     
 
    <ImageView 
            android:id="@+id/FLOUR_BTN"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/flour_button_click"
            android:onClick="mOnClick"
            />
 
이런식으로 적용였습니다.
 
도와주세요 ㅠ
 
익명사용자 님이 2015년 2월 11일 질문

2개의 답변

+1 추천
 
채택된 답변
    <item android:state_pressed="true" android:drawable="@drawable/flour_on"></item>
    <item android:drawable="@drawable/flour_off"/>
 
이렇게 함 해보셔요
nicehee (73,100 포인트) 님이 2015년 2월 11일 답변
해봤는데 해결이 않되네요 .. 분명 다른 xml들은 잘작동하는데
 같은 액티비티에 버튼이 2개 더있는데 그 2버튼은 잘작동하는데 저 2버튼이 작동을 않하네요 .. 클린을 해봐도 똑같구요 ..
android:clickable="true"
이게 읍네요
감사합니다. nicehee 님 이번에도 역시 님덕에 해결했네요 ..
진심으로 감사드려요 ㅎ 이드로이드 님한테 도 드리고싶지만 한분밖에 못드려서 ㅠㅠ
+1 추천

button view가 아니면 코드상에서 onClickListener를 생성해줘야 작동 했던걸로 기억이 나네요..

ImageView말고 ImageButton으로 해보세요.

 

ImageButton 속성에

android:background ="#01FFFFFF"

android:src="@drawable/flour_button_click"

라고 주시면 됩니다.

이드로이드 (22,930 포인트) 님이 2015년 2월 11일 답변
이드로이드님 답변감사드립니다.
ㅠㅠ 이미지 버튼으로 만든뒤에도 똑같은 증상이 나타나네요 ..
문제는 다른 이미지뷰에다 넣어서 잘 사용한 똑같은 코드임에도 (다른 이미지뷰에 onClickListener 를 생성하지 않았습니다.) 다른곳에서는 잘되고 어떠한 곳에서는 잘안되는지 ..ㅜ
mOnClick
함수 안에
FLOUR_BTN 관련된 내용이 있나요? 클릭했을때 Log라도 찍는 코드를 작성해 보세요~

아무런 기능이 없으면 xml selector가 작동하지 않았던 적이 있던걸로 기억합니다.
네 ㅠ 버튼 눌렸을때 실행되는것까지 해봤구요. 실행은 잘되는데 눌림효과가 나타나지 않았습니다 ㅜ   

public void mOnClick(View v)
    {
        switch(v.getId())
        {
        case R.id.CONTENT_HOME_BTN: finish(); break;
        case R.id.CONTENT_PREV_BTN: finish(); break;
        case R.id.FLOUR_BTN:        Flour_p.setColor(Color.BLUE); Flour_p.setAlpha(200);break;
        case R.id.IODINE_BTN:        Iodine_p.setColor(Color.YELLOW); Iodine_p.setAlpha(200);break;
        }
    }
...