안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
이번 포스팅에서는 뷰를 클릭했을 때 클릭했다는 효과를 주는 리플효과 만드는 법에 대해 공부하겠씁니다.
먼저 리플효과ripple effect 는 api21 이상에서만 동작합니다.
때문에 디렉토리부터 나눠서 만들어줘야하는데요.
아래처럼 res 밑에 drawable-v21 이라는 폴더를 만들어주세요.
그리고 메모장을 여신 후 원하는파일이름.xml 로 다른이름 저장하신 후
방금 만든 drawable-v21 안에 넣어 주시면 안드로이드 스튜디오에서 해당 xml을 보실 수 있습니다.
그럼 이제 효과를 주기위한 코드를 봐야겠죠?
<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/colorPrimary"> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="@color/white"/> </shape> </item> </ripple>
|
android:color 에 들어가는 색상이 뷰를 터치했을 때 효과로 들어갈 색상이고,
solid android:color 에 들어가는 색상은 뷰의 기본 background 색상입니다.
위처럼 작성했으면 xml 에서 원하는 뷰에 적용시키면되겠죠?
ex)
<TextView
android:background="@drawable/ripple.xml"
....
/>
처럼 적용하시면 됩니다.
근데 이렇게만하면 21버전 이하에서 빌드를 하면 당연 에러가 납니다.
이런 에러를 미연에 방지하기 위해
layout도 따로 작성해야 합니다.
아니면 자바 코드로 제어를 해도 되구요 ㅎㅎ
layout을 따로만드는 건 drawable-v21을 만든거처럼
layout-v21을 만드시고
layout, layout-v21 에 같은 xml을 만드시고 v21이상에서만 동작하는 코드들을
layout-v21 안의 xml에 적용시키면 됩니다.
설명이 좀 부족한 거 같은데요.
추가로 궁금하신 부분이 있다면 댓글 남겨주시면,
아는 지식 선에서 답변드리겠습니다!
이상입니다~~
'안드로이드' 카테고리의 다른 글
안드로이드 액티비티를 다이얼로그로 띄우기 android make activity to dialog (0) | 2017.06.02 |
---|---|
안드로이드 상태 표시줄 색 변경 및 아이콘 흰색에서 검은색으로 변경하는 법 (2) | 2017.05.29 |
안드로이드 다이얼로그 타이틀 없애기 , 액티비티 EditText 포커스 없애기 (0) | 2017.05.23 |
안드로이드 리스트뷰ListView 아이템 클릭 시 swipeListView처럼 애니메이션 동작하도록 (0) | 2017.05.18 |
안드로이드 애니메이션 Animation x,y 좌표 이동 애니메이션과 애니메이션 후 위치(좌표) 고정 (0) | 2017.05.16 |