2014-02-10 2 views
1

둥근 모서리가있는 사용자 화 된 단추가 있는데, 눌렀을 때 그림자가 몇 개 있지만 단추의 아래쪽 부분 만 바깥 쪽 그림자를 만들고 싶습니다. xml을 통해 drawable을 만들고 있으므로 광선이있을 수 있습니다. 그렇게하면 좋을 것입니다.버튼을 사용하여 xml을 통해 바깥 쪽 광선을 처리하는 방법은 무엇입니까?

button_pressed_shadows.xml

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <gradient 
       android:startColor="@color/black_overlay" 
       android:endColor="@color/btn_login" 
       android:angle="270"/> 
      <corners android:radius="4dip" /> 
     </shape> 
    </item> 

    <item    
     android:top="2px"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/btn_login"/> 
      <corners android:radius="4dip" /> 
     </shape> 
    </item> 
</layer-list> 

style_login.xml 나는 포토샵의 버튼 디자인을 가지고 있기 때문에, 내가 함께 9 패치 이미지를 만들었

<?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_pressed_shadows" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@drawable/button_focused" /> <!-- hovered --> 
    <item android:drawable="@drawable/button_login" /> <!-- default --> 
</selector> 

답변

0

: 이 코드의 관련 부분은 그것을 스타일 선택기에 넣으면 모든 것이 잘되었다고 생각합니다. 가장 쉬운 방법입니다.

0

또한 레이어 목록을 사용하는 동안 적절한 색상 조합과 패딩을 사용하여 광선이나 그림자처럼 만들 수 있습니다.

drawables using layer-list

edit_text_background

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item> 
    <shape android:shape="rectangle" > 
     <solid android:color="#fff" /> 

     <corners android:radius="4dp" /> 
    </shape> 
</item> 
<item android:bottom="1dp"> 
    <shape android:shape="rectangle" > 
     <corners android:radius="4dp" /> 

     <stroke 
      android:width="1dp" 
      android:color="#dadad7" /> 

     <solid android:color="#fff" /> 
    </shape> 
</item>