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;
}
}