Android 사용자 정의 button 클릭 효과 의 두 가지 방법

우 리 는 인터페이스 에서 button 단 추 를 자주 사용 하지만 보통 button 을 클릭 한 후에 클릭 효 과 를 볼 수 없 으 며 사용자 가 두 번 연속 클릭 하면 NAR 오 류 를 보고 하여 상호작용 이 비교적 떨어진다.만약 우리 가 button 클릭 효 과 를 사용자 정의 했다 면,예 를 들 어 우리 가 button 버튼 을 눌 렀 다 는 것 을 볼 수 있 습 니 다.그러면 중복 클릭 을 피 할 수 있 습 니 다.
사용자 정의 클릭 효 과 는 두 가지 방식 이 있 습 니 다.하 나 는 xml 에서 정의 하고 다른 하 나 는 코드 에서 정의 합 니 다.
우선 xml 에서 어떻게 정의 하 는 지 봅 시다.
drawable 에서 새 selector.xml 파일 을 만 듭 니 다:         

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 
  <item android:drawable="@drawable/button_press" android:state_pressed="true"/> 
  <item android:drawable="@drawable/button_nomal" android:state_focused="false" android:state_pressed="false"/> 
  <item android:drawable="@drawable/button_focus" android:state_focused="true"/> 
  <item android:drawable="@drawable/button_nomal" android:state_focused="false"/> 
 
</selector> 
두 가지 상 태 를 정 의 했 습 니 다.하 나 는 누 르 는 것 입 니 다.  하 나 는 초점 을 맞 추 는 것 이다. 
drawable 은 각각 이 세 장의 그림 을 인용 했다.
      
그리고 main.xml 에 button 단 추 를 추가 합 니 다.

  <Button 
 android:id="@+id/button1" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:text="button    " 
 android:background="@drawable/selector" />  
MainActivtiy 에서 button 받 기   

Button button1=(Button) this.findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 
       
      @Override 
      public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Toast.makeText(getApplicationContext(), "    button  ", Toast.LENGTH_SHORT).show(); 
      } 
    }); 
아래 클릭 효과 보기:
button 클릭 전:
      
단추 단 추 를 눌 렀 을 때:
            
다음은 두 번 째 실현 방식 을 보고 코드 에서 실현 합 니 다.
우선 main.xml 에 추가:

   <Button 
   android:id="@+id/button2" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:text="button    " 
   android:background="@drawable/button_nomal"/> 
다음은 MainActivity 에서 이 루어 집 니 다.

  Button button2=(Button) this.findViewById(R.id.button2); 
    button2.setOnTouchListener(new OnTouchListener() { 
     
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
      // TODO Auto-generated method stub 
      if(event.getAction()==MotionEvent.ACTION_DOWN){ 
        v.setBackgroundResource(R.drawable.button_press); 
      }else if(event.getAction()==MotionEvent.ACTION_UP){ 
        v.setBackgroundResource(R.drawable.button_nomal); 
      } 
      return false; 
    } 
  }); 
button 을 연결 한 OnTouch Listener 감청 은 OnClickListener 가 OnTouch Listener 를 물 려 받 았 기 때 문 입 니 다.운행 효 과 는 위 와 마찬가지 로 여 기 는 너무 많은 설명 을 하지 않 습 니 다.
이상 은 안 드 로 이 드 사용자 정의 button 클릭 효과 구현 방식 의 모든 내용 입 니 다.참고 해 주시 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기