본문 바로가기
개발자/Android

[Android] 버튼 클릭 시 이미지 변경에 대한 방법

by Alex.K 2012. 1. 2.
반응형
새해가 밝았네요 모두 새해복 많이 받으셨나요?
항상 블로그를 운영하면서 글을 제때제때 못올리다보니
공부한 내용들을  하나도 올리지 못했네요 ㅠ.ㅠ
이제부터라도 꾸준하게 맘 잡고 올리도록 하겠습니다.

이번에 적을 내용은 버튼을 클릭했을 때 반응을 하는 부분에 대하여 글을 올립니다.

안드로이드 개발시 버튼 클릭 할 때 개발자가 준비한 버튼 이미지나 색상들을 적용시켜서 동작 하는데요.
제가 설명할 방법은 두가지가 됩니다.

1. 버튼 클릭 시 Touch 이벤트를 적용, ACTION_DOWN 과 ACTION_UP 을 이용해서 버튼의 그림을 변경.

about_bt = (Button)findViewById(R.id.about_bt);
about_bt.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {

				Intent intent = new Intent(this, 액티비티 실행할 클래스);
				startActivity(intent); // 클릭 이벤트에 액티비티 실행				
			}
		});		
	about_bt.setOnTouchListener(new OnTouchListener() {	//버튼 터치시 이벤트		
			public boolean onTouch(View v, MotionEvent event) {
				if(event.getAction() == MotionEvent.ACTION_DOWN) // 버튼을 누르고 있을 때
					about_bt.setBackgroundResource(drawable.이미지);
				if(event.getAction() == MotionEvent.ACTION_UP){ //버튼에서 손을 떼었을 때 
					about_bt.setBackgroundResource(drawable.이미지); 
				}
				return false;
			}
		}); 

예전에는 위와 같은 방법을 사용해서 default 이미지와 클릭시 이미지를 번갈아 사용을 했었습니다.

요즘 사용하는 방법은 xml Selector 를 사용하는 방법인데요 이는 다음과 같습니다.

2. xml에서 selector 를 구현하는 방법

우선 xml 폴더나 drawable 등의 폴더에서 임의의 xml을 생성합니다.

그리고 xml을 다음과 같이 설정합니다.




	
	
	
	




그리고 이 xml 파일을 해당 버튼의 android:background="해당 xml 파일" 와 같이 설정해주시면 이벤트가 잘 적용되는 것을 확인할 수 있습니다.

두가지 방법에서 편한 방법을 사용하시면 될듯 한데 저는 2번 방법이 요즘에 무지 편한거 같네요 소스 보기도 편한거 같고 하하
글 읽어 주셔서 감사하구요~ 오늘도 좋은 하루되세요^^

 
반응형

댓글