안드로이드

안드로이드 리플 효과 만들기, android ripple effect

알통몬_ 2017. 5. 23. 11:45
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 


이번 포스팅에서는 뷰를 클릭했을 때 클릭했다는 효과를 주는 리플효과 만드는 법에 대해 공부하겠씁니다.


먼저 리플효과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에 적용시키면 됩니다.


설명이 좀 부족한 거 같은데요.

추가로 궁금하신 부분이 있다면 댓글 남겨주시면,

아는 지식 선에서 답변드리겠습니다!


이상입니다~~

반응형