이전 글 필요한분 여기로. 
2012/04/12 - [Android Study] - Android Custom Widget 만들기 1편

OnOffButton 클래스는 View를 상속 받아 만들 예정임.
View 하고 ViewGroup 하고 둘중 하나를 가지고 custom widget을 많이 만드는듯 싶은데.
ViewGroup은 Widget(component)가 여러개 있는걸 컨트롤 할때 사용
단독 Widget(component)는 View를 사용함.

아래는 궁금하실 코드 내용 설명 @_@

// class를 만들고 View 클래스 상속 받으면 생성자 3개 종류중 1개를 꼭 써줘야함.
// 문제가 좀 있어서 3개다 사용 해주는 것이 좋음 

public class OnOffButton extends View {
    // Context만 가지고 만들어지는 생성자 (Activity등 클래스에서 new 해서 생성)
    public OnOffButton(Context context) {
       // 일일이 초기화 함수 호출하기도 아까우니 super를 this로 변경합세다.
        super(context);
       // context 만 있는 상태로 호출
       this(context, null, -1) 
    }
   // Context, AttributeSet 두가지로 만들어진 생성자 (Layout XML 파일에서 사용)
    public OnOffButton(Context context, AttributeSet attrs) {
       // 일일이 초기화 함수 호출하기도 아까우니 super를 this로 변경합세다. 
        super(context, attrs);
       // context, attributeset이 있는 상태로 호출 
        this(context,  attrs , -1) 
    }
   // Context, AttributeSet, Style 값까지 있는 생성자
   // Layout XML 파일에서 Thema 까지 지정 해줄때 사용 되는듯(정확한건 모름) 
    public OnOffButton(Context context, AttributeSet attrs, int defStyle) {
       // 다른 생성자 밑 모든 생성자가 최종적으로 부른는 녀석    
        super(context, attrs, defStyle);
       // 여기서 부터는 초기화 함수 호출 및 초기화 설정이 들어 갈 예정
       ... 
    }
   // Widget (component) 크기 계산 함수 파라메터는 화면 크기에 대한 정보
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
   // 사용자 Touch 이벤트에 대한 함수 파라메터는 이벤트 값(좌표, 행동)이 전달됨
    @Override
    public boolean onTouchEvent(MotionEvent event) { 
       return super.onTouchEvent(event);
    }
   // Widget을 그리는 함수 파라메터는 현재 그릴 canvas
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    }
}

이정도가 완전 기본 뼈대 코드임.
빠르게 담편으로... 

'Android' 카테고리의 다른 글

Android Custom Widget 만들기 4편  (0) 2012.04.12
Android Custom Widget 만들기 3편  (0) 2012.04.12
Android Custom Widget 만들기 1편  (1) 2012.04.12
Android Study ListView Indexer 6편  (3) 2012.03.07
Android Study ListView Indexer 5편  (0) 2012.03.07

+ Recent posts