TITLE : Android custom Button Source
Date : 2010/04/25
Writen by Dayyoung
Description :
This is Source that make custom button by extends original class
Download Link :
버튼클래스를 상속받아 사용자 버튼 만들기
안드로이드 버튼은 상대적으로 다양한 사용자 옵션을 제공한다.
특히 배경/글자/투명색 등은 버튼을 다양하게 꾸밀 수 있는 여지를 제공한다.
하지만, 이미지나 보다 독특한 프로그램을 만들기 위해서는 기존의 위젯을 사용자가 정의 해서 사용하는 것이 좋다.
특히, 안드로이드는 OOP게념이 적용되어 사용자정의를 위해서는 부모클래스를 상속받아야 한다.
모든 자바 클래스가 Object 버튼을 상속받는 것처럼
모든 뷰(버튼뷰/이미지뷰/웹뷰)등 은 View 클래스를 상속받으며,
특히 글자가 들어가는 모든 뷰는 텍스트뷰를 거의 대부분 상속받는 다고 봐도 무방하다.
안드로이드 뷰의 상속관계>
ViewClass
ㄴTextView
ㄴ ButtonView
일반적인 ButtonView 는 눌렀을 때 사용자가 눌렸다는 인식을 하기 좋다.
하지만, 버튼에 이미지를 삽입하는 경우 눌렸을 때 이미지를 변경시켜줘야 하는 부분이 필요한데 이것은 ButtonView 의 클릭이벤트 부분을 사용자정의 하여 구현할 수 있다.
1. 안드로이드에서 WebView에 대응하는 Button클래스를 상속받는 CustomButton 클래스를 만들어 준다.
2. 상황에 맞는 이미지 버튼을 준비해서 Drawable 폴더로 이동시킨다.이 때 R.java 파일에 이미지 파일의 ID가 저장되는 데 이는 나중에 버튼을 지정할 때 쓰인다.
3. main.xml 에 사용자 뷰를 추가한다.
XML 에서 디자인을 추가할 때 상속한 뷰를 쓰려면 아무리 같은 클래스에 있다고 할지라도 Full Pakage Name 을 써주어야 사용할 수 가 있다.
setBackgroundResource(clickedBitmapId) 에서 배경그림을 설정한다.
5. onTouchEvent에서 case MotionEvent.ACTION_UP:
setBackgroundResource(normalBitmapId)에서 배경그림을 되돌린다.
앞으로 살펴보게되는 사용자 정의뷰의 대부분은 OOP의 다형성을 이용하여 구현되었다.
안드로이드에서 사용자가 기본뷰나 클래스를 가져 쓰기위해서는 어뎁터패턴/이터레이터패턴/팩토리패턴 등 다양한 패턴에 익숙해 질 필요가 있다.
'Daily Sample' 카테고리의 다른 글
[Day10] Android Custom Mixed Picker Widget 소스 (0) | 2011.11.30 |
---|---|
[Day9] Android Iphone UI 소스 (0) | 2011.11.30 |
[Day7] Android Twitter Test 소스 (사용불가x) (0) | 2011.11.30 |
[Day6] Android Custom ToastView 소스 (0) | 2011.11.30 |
[Day5] Android SQLite 기본 동작 소스 (0) | 2011.11.30 |