반응형
버튼을 비트맵 이미지로 바꾸기
#개념
#결과화면
#메인 엑티비티 레이아웃.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <me.happygate.my0823.BitmapButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="helloWorld"/> </LinearLayout> | cs |
#메인 엑티비티.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package me.happygate.my0823; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } | cs |
#버튼을 상속한 새로운 클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | package me.happygate.my0823; import android.content.Context; import android.support.v7.widget.AppCompatButton; import android.util.AttributeSet; import android.view.MotionEvent; /** * Created by kang on 2017-08-23. */ //BitmapButton 클래스는 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.a); //버튼 글자 크기 지정 //dimens xml 에서 버튼 크기 지정했다. float textSize = getResources().getDimension(R.dimen.text_size); setTextSize(textSize); } //버튼을 손가락으로 터치했을 때 발생하는 이벤트 @Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch (action) { //버튼이 눌려졌을 때 case MotionEvent.ACTION_DOWN: setBackgroundResource(R.drawable.b); break; //버튼이 때졌을 때 case MotionEvent.ACTION_UP: setBackgroundResource(R.drawable.a); break; } invalidate(); return true; } } | cs |
#dimen.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">16dp</dimen>
</resources>
#파일 위치 및 경로
반응형
'매일코딩 > 안드로이드' 카테고리의 다른 글
[안드로이드 기초] 리스트뷰 어뎁터로 데이터 보여주기 (0) | 2017.08.25 |
---|---|
[안드로이드 기초] 액션바 탭바 프레그먼트 (0) | 2017.08.24 |
[안드로이드 기초] 상대 레이아웃 (0) | 2017.08.24 |
[안드로이드 기초]리니어 레이아웃 연습 (0) | 2017.08.24 |
[안드로이드 기초] 프레그먼트로 이미지뷰 띄우기 (0) | 2017.08.23 |
댓글