210202
[View] 비트맵 버튼 정리 본문
비트맵 버튼이란?
- 나인패치 이미지를 적용하여 버튼을 생성하면 사용자가 버튼을 눌렀을 때 버튼이 눌린지 확인하기 어렵다. 이를 비트맵 버튼을 사용하여 버튼의 상태를 이벤트로 구분할 수 있게 만들어준다.
사용법
1. 버튼을 상속해서 새로운 비트맵 버튼을 만든다.
package techtown.org;
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.appmarker12);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
int action = event.getAction();
switch (action){
case MotionEvent.ACTION_DOWN:
setBackgroundResource(R.drawable.appmarker12);
break;
case MotionEvent.ACTION_UP:
setBackgroundResource(R.drawable.ic_launcher_background);
break;
}
invalidate();
return true;
}
}
2. 사용할 xml 파일에 해당하는 비트맵 버튼을 사용한다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<techtown.org.BitmapButton
android:background="@drawable/appmarker12"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</techtown.org.BitmapButton>
</LinearLayout>
'Android > View' 카테고리의 다른 글
[ViewPager] ViewPager와 ToolBar를 사용할 때 AppBar가 사라지는 이유 + 해결방법 (0) | 2020.06.09 |
---|---|
[ListView] androidX에서 ConstraintLayout에 Listview의 내용이 표시되지않는 오류 해결법 (0) | 2020.06.03 |
[View] 나인패치 이미지란 & 사용방법 (0) | 2020.06.01 |
[View] ConstraintLayout에서 View사이의 체인의 길이를 줄이는 법 (0) | 2020.05.29 |
[View] 쉐이프 드로어블(ShapeDrawable) 정리 (0) | 2020.05.29 |
Comments