2015-02-05 3 views
1

Я делаю кнопку круга с состояниями, и я хочу добавить тень к кнопке, как кнопки по умолчанию, как я могу это сделать? Вот мой код:Кнопка круга с тенью

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"> 

     <shape android:shape="oval"> 
      <solid android:color="@color/yellow_pressed" /> 
      <stroke android:width="1dp" android:color="#fff" /> 
     </shape> 
    </item> 

    <item android:state_focused="true"> 
     <shape android:shape="oval"> 
      <solid android:color="@color/yellow_pressed" /> 
      <stroke android:width="1dp" android:color="#fff" /> 
     </shape> 
    </item> 


    <item> 
     <shape android:shape="oval"> 
      <solid android:color="@color/yellow_default" /> 
      <stroke android:width="1dp" android:color="#fff" /> 
     </shape> 
    </item> 

</selector> 
+0

@DerGolem от апи 8 –

+0

Ну, это материал особенности. Либо используйте png, либо найдите лучшее обходное решение. Возможно, использование новой библиотеки поддержки и установка последней версии SDK могут помочь. –

ответ

0
+2

Просьба предоставить соответствующие решения из ссылок, а не только ссылки – sapht

2

Начиная с леденец, вы можете использовать :

public static void setOvalElevationToView(final View view) { 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) 
     view.setOutlineProvider(new ViewOutlineProvider() { 
      @TargetApi(VERSION_CODES.LOLLIPOP) 
      @Override 
      public void getOutline(View view, Outline outline) { 
       final int size = view.getWidth(); 
       outline.setOval(0, 0, size, size); 
      } 
     }); 
} 

Вам также может понадобиться отключить закрепляя родитель зрения, так, чтобы тень не будет обрезана

Смежные вопросы