안드로이드

버튼 이너쉐도우 효과주기(다음메일앱 버튼 응용편) 2013.7월.

heefinn 2013. 7. 26. 19:15

<눌렀을때 이너쉐도우 효과 나타나는 버튼>

-다음메일앱 버튼 응용편. 2013.7월 현재.


 

                                                                            (평상시 버튼 - 눌렀을 때 버튼은 다음메일앱 로그인 화면 참고함)



*btn은 button의 줄임말



1. 먼저 drawable 파일에 3개 xml 파일을 만든다.


  btn_custom.xml (이 파일이 아래의 두 파일을 관리한다.)

  btn_custom_pressed.xml (버튼 눌렀을 때)

  btn_custom_default.xmll (평상시 버튼)



     2. btn_custom.xml 파일에 넣을 것


        <!--버튼 눌렀을 때-->

        <item android:drawable="@drawable/btn_custom_pressed" android:state_pressed="true"/><!-- pressed --> 

  <!--평상시 버튼-->

        <item android:drawable="@drawable/btn_custom_default"/> <!-- default -->




     3. btn_custom_pressed.xml 파일에 넣을 것.


<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    

    <!-- "background shadow" -->

    <item>

        <shape android:shape="rectangle" >

            <solid android:color="#000" />


            <corners android:radius="15dp" />

        </shape>

    </item>


    <!-- background color -->

    <item

        android:bottom="3px"

        android:left="3px"

        android:right="3px"

        android:top="3px">

        <shape android:shape="rectangle" >

            <solid android:color="#b3661e" />


            <corners android:radius="3dp" />

        </shape>

    </item>


    <!-- over left shadow -->

    <item>

        <shape android:shape="rectangle" >

            <gradient

                android:angle="180"

                android:centerColor="#b3661e"

                android:centerX="0.9"

                android:endColor="#000"

                android:startColor="#b3661e" />


            <corners android:radius="8dp" />

        </shape>

    </item>


    <!-- over right shadow -->

    <item>

        <shape android:shape="rectangle" >

            <gradient

                android:angle="360"

                android:centerColor="#b3661e"

                android:centerX="0.9"

                android:endColor="#000"

                android:startColor="#b3661e" />


            <corners android:radius="3dp" />

        </shape>

    </item>


    <!-- over top shadow -->

    <item>

        <shape android:shape="rectangle" >

            <gradient

                android:angle="-90"

                android:centerColor="#b3661e"

                android:centerX="0.9"

                android:endColor="#000"

                android:startColor="#b3661e"/>


            <corners android:radius="3dp" />

        </shape>

    </item>


    <!-- over bottom shadow -->

    <item>

        <shape android:shape="rectangle" >

            <gradient

                android:angle="90"

                android:centerColor="#b3661e"

                android:centerX="0.9"

                android:endColor="#000"

                android:startColor="#b3661e"

                android:type="linear" />


            <corners android:radius="3dp" />

        </shape>

    </item>

</layer-list>



    4. btn_custom_default.xml 파일에 넣을 것.


   <item>        

        <shape>

            <gradient

                android:startColor="#fa9630"

                android:endColor="#c96804" 

                android:angle="270" />

            <stroke

                android:width="1dp"

                android:color="#fff" />

            <corners

                android:radius="3dp" />

            <padding

                android:left="10dp"

                android:top="10dp"

                android:right="10dp"

                android:bottom="10dp" />

        </shape>

    </item>




5. 마지막으로 layout파일의 activity_login.xml 파일에 넣을것.


<Button

   android:id="@+id/bt_login"

   android:layout_width="match_parent"

   android:layout_height="45dp"

 

   android:background="@drawable/btn_custom.xml"

   android:text=" 로그인" 

   android:textSize="15dp"

   android:textColor="#fff"

   android:textStyle="bold"

   android:layout_marginTop="7dp"/>