티스토리 뷰

Android

비트맵 버튼 예시

varyeun 2020. 3. 25. 21:52

- 뷰의 상속

- 비트맵 버튼

 

버튼의 기능을 .java로 따로 아예 구현을 해서 상속하는 식으로 구현한다.

이때 사용되는 invalidate 메소드는 화면을 다시 그려주는 메소드로, 화면을 갱신할 때 사용한다.

 

버튼을 상속해서 비트맵 버튼을 만들 때,

java class 파일 생성 시 Superclass로 AppCompatButton를 상속받아 만들면 된다.

 

 

 

BitmapButton.java

package com.example.mybutton;

import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.MotionEvent;

import androidx.appcompat.widget.AppCompatButton;

public class BitmapButton extends AppCompatButton {
    public BitmapButton(Context context) {
        super(context);

        init(context);
    }

    public BitmapButton(Context context, AttributeSet attrs) {
        super(context, attrs);

        init(context);
    }
    private void init(Context context){
        setBackgroundResource(R.drawable.title_bitmap_button_normal);

        float textSize = getResources().getDimension(R.dimen.text_size);
        setTextSize(textSize);
        setTextColor(Color.WHITE);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int action = event.getAction();

        switch(action){
            case MotionEvent.ACTION_DOWN:
                setBackgroundResource(R.drawable.title_bitmap_button_clicked);
                break;
            case MotionEvent.ACTION_UP:
                setBackgroundResource(R.drawable.title_bitmap_button_normal);
                break;
        }
        invalidate();

        return true;
    }
}
댓글