일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 베드트레이
- 자취필수템
- 지지않는다는말
- 끝말잇기
- 함수형 프로그래밍
- 면접
- 목적 중심 리더십
- 한달독서
- 커스텀린트
- 소프시스
- 테트리스
- 재택근무
- 프래그먼트
- 어떻게 나답게 살 것인가
- 브런치작가되기
- 좌식테이블
- 목적중심리더십
- 슬기로운 온라인 게임
- 한달어스
- 베드테이블
- 캐치마인드
- T자형인재
- 북한살둘레길
- 소프시스 밤부 좌식 엑슬 테이블
- 한단어의힘
- 한달브런치북만들기
- 안드로이드
- 1일1커밋
- 아비투스
- 리얼하다
- Today
- Total
정상에서 IT를 외치다
[Android, Customizing Ripple Effect] 내맘대로 리플 효과 변경하기 본문
안녕하세요. 블랙진입니다.
저번에 Ripple Effect 사용법에 대한 포스팅을 했습니다.
이번에는 이 Ripple Effect 를 Customizing 해보는 법에 대해 소개하겠습니다.
먼저 drawable 파일에 ripple_effect.xml 파일을 만들어줍니다.
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="#fc4381"
tools:targetApi="lollipop">
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="#000000" /> <!-- background color -->
</shape>
</item>
</ripple>
위와 같이 설정을 해주시면 됩니다.
제가 설정한 뷰는 배경이 검은 색이고 클릭시 분혹색의 Ripple Effect 를 주었습니다.
그리고 Ripple Effect 를 주고싶은 View 에 아래 코드를 추가해주시면 됩니다.
android:background="@drawable/ripple_effect"
이렇게 하면 간단하게 ripple_effect 를 customizing 하여 사용하실 수 있습니다.
하지만!!
여기서 Ripple Effect 는 API 21 이상에서만 작동되는 코드입니다. 저번 포스팅에서 알려드린 Ripple Effect 는 하위버전에서 예외 처리가 자동으로 되어 있지만 Customing 하여 사용하게 되면 예외 처리를 따로 해주셔야 됩니다.
만약 하지 않는다면!!!
android.view.InflateException: Binary XML file line #10: Error inflating class <unknown>
Error inflating class 에러로 앱이 crush 되는 심각한 문제가 발생합니다. ㅠㅜ
예외 처리하는법은 아래와 같이 해주시면 되겠습니다.
ripple_effect 를 drawable 에 만들어 주었는데, 이와 같은 xml 을
drawable-v19 폴더에도 따로 만들어 ripple_effect 를 새로 만들어 줍니다.
위와 같이 -v19 를 붙이면 api 버전 19 에서는 폴더안에 있는 파일을 사용한다는 의미입니다.
drawable-v19 안에 ripple_effect 는 아래와 같이 아무 효과 없는 검은 배경으로 만들어 줍니다.
혹은 저번에 포스팅 했던 selector 를 설정해 주셔도 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/black_four"/>
</shape>
저는 minSdkVersion 을 19로 설정했기 때문에 그 이하 버전에서는 예외 처리를 하지 않았습니다. 하지만 그 하위버전 까지를 target 으로 한다면 해당 버전까지 예외 폴더를 만들어서 처리해주셔야 합니다.
그럼 Material Design 을 사용하여 에러 없는 즐거운 코딩 하시기 바랍니다.~!
'안드로이드' 카테고리의 다른 글
[Android, Camera] 1. 카메라 프리뷰를 이용한 화면 캡처 및 배경 이미지 적용 (2) | 2018.08.22 |
---|---|
[Android, Custom Switch] 안드로이드 스위치 버튼 꾸미기 (4) | 2018.08.17 |
[Android, Ripple Effect, Selector] 클릭시 뷰에 효과 주기 (4) | 2018.08.13 |
[Android, elevation not working] 안드로이드 elevation 사용하기 위한 조건 (0) | 2018.08.08 |
[Android, Anko Commons, StartActivity] Anko Commons 를 사용한 StartActivity (0) | 2018.08.08 |