티스토리 뷰
[Android Studio] 버튼 누르는 효과 만들기 클릭 이벤트 효과 Button Press 안드로이드 스튜디오
eqrw105 2020. 10. 24. 23:42[Android Studio] 버튼 누르는 효과 만들기 클릭 이벤트 효과 Button Press 안드로이드 스튜디오
저번 시간에 버튼을 둥글게 만드는 custum button resource를 생성하여 적용시켰었다.
기억이 안 난다면 아래 링크로 돌아가 보자
2020/07/03 - [APP/AndroidStudio] - [Android Studio] 버튼 둥글게 만들기 안드로이드 스튜디오 Button Round
일반적인 커스텀 버튼은 버튼을 눌렀을 때 누르는 효과가 없다.
이번 시간에는 버튼을 꾹 누르는 동안에 눌렀다는 효과가 보일 수 있도록 바꿔보자
저번 시간에 만든 커스텀 버튼을 이용할 것이니 이전 포스팅을 꼭 보고 시작하자
1. 저번 시간과 같이 커스텀 버튼 리소스 파일 생성하기
우선 drawable 폴더에 resource 파일을 생성하자
필자는 button_round.xml라고 이름을 지었다.
내용은 아래와 같이 작성한다
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<solid android:color="#000000" />
<corners
android:bottomLeftRadius="12dp"
android:bottomRightRadius="12dp"
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
</shape>
방금 만든 리소스 파일은 버튼을 누르기 전 상태의 버튼 모양을 만든 것이다.
2. 눌렀을 때 사용할 커스텀 버튼 리소스 파일을 하나 더 생성하기
새로 xml resource파일을 생성해서 버튼을 눌렀을 때 상태의 모양을 만들자
필자는 2번째 파일을 button_round_press라는 이름으로 지었다.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<solid android:color="#333333" />
<corners
android:bottomLeftRadius="12dp"
android:bottomRightRadius="12dp"
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
</shape>
3. 두 개의 리소스 파일을 버튼에 적용시켜주는 리소스 파일 생성하기
그다음 2개의 리소스파일을 하나의 버튼에 넣을 수 있도록 중계해주는 resource 파일을 생성한다.
필자는 button_back이라고 이름을 지었다.
(지금까지 총 3개의 리소스 파일)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/button_round_press"/>
<item
android:state_window_focused="false"
android:state_enabled="true"
android:drawable="@drawable/button_round"/>
<item
android:state_enabled="true"
android:drawable="@drawable/button_round"/>
</selector>
이제 button_back 리소스 파일을 이용해 버튼 background 속성에 적용시켜준다.
<Button
android:id="@+id/btn_pass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="35dp"
android:layout_marginTop="50dp"
android:layout_marginRight="35dp"
android:background="@drawable/button_back"
android:text="로그인"
android:textColor="#fff"
android:textSize="20sp"
android:textStyle="bold" />
참 쉽죠?
'안드로이드 > XML' 카테고리의 다른 글
[Android Studio] 간단한 커스텀 폰트 사용하기 원하는 글꼴 넣기 안드로이드 스튜디오 (0) | 2020.11.02 |
---|---|
[Android Studio] 버튼 둥글게 만들기 안드로이드 스튜디오 Button Round (0) | 2020.10.25 |
[Android studio] 버튼클릭 지점부터 물결효과 주기 Button ripple 안드로이드 스튜디오 (0) | 2020.10.21 |
[Android Studio] 간단하게 일정시간 지연시키는 딜레이주기 Delay 안드로이드 스튜디오 (0) | 2020.10.20 |
[Android Studio] 버튼 및 레이아웃 그림자 효과주기 Shadow Effect (0) | 2020.10.19 |
- Total
- Today
- Yesterday
- 안드로이드 스튜디오 해시키
- amplify next.js
- 카카오 해시키
- 커밋 이메일 변경
- 코틀린
- nextjs ssr deploy
- 깃허브 잔디 옮기기
- next useEffect
- 안드로이드 해시키
- react native 오픈소스 라이선스
- rn 오픈소스 라이센스
- room error
- kotlin
- next.js ssr deploy
- 깃허브에서 깃랩으로
- 깃랩에서 깃허브로
- rn oss
- react.js useEffect
- Build failed because of webpack errors
- gitlab mirror
- kakao api notworking
- non-zero exit code detected
- amplify build error
- react native oss
- 안드로이드 스튜디오
- 라이브러리 라이센스
- next.js useEffect
- Android Studio
- 깃랩 잔디 옮기기
- github mirror
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |