2013-06-14 2 views
5

Я пытаюсь добавить какую-то тень поверх кнопки изображения при нажатии. Это возможно и как.Добавить тень на кнопку в android

У меня есть кнопка, и я хотел бы, чтобы она выглядела нажатой, когда я нажимаю ее. Таким образом, я создал новый XML так:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_pressed="true" 
    android:state_enabled="true" 
    android:drawable="@color/btn_pushed" 
    /> 
<item 
    android:drawable="@drawable/btn" /> 
</selector> 

Ok это работает отлично, но у меня есть как 50 кнопок, и я должен сделать новый образ для всех из них. Это очень много работы, можно ли просто добавить в нее какую-то тень? Или что-то такое, чтобы оно выглядело толчком?

+0

пожалуйста, ясно, что вы question.i не может понять. – TheFlash

+0

Пожалуйста, прочитайте его еще раз. В начале я написал новый вопрос. – gabrjan

+0

k, то вы хотите добавить тень к imagebutton.I знаю только применить тень к кнопке. – TheFlash

ответ

5

Итак, я нашел решение, и я добавлю его сюда для читателей функций. Фокус в использовании. Я нашел ответ здесь http://belencruz.com/2012/12/rounded-button-with-shadow-in-android/ Мой код прямо сейчас:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 


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

<item android:drawable="@drawable/btn" /> 
<item android:drawable="@color/transparent"/> 


</layer-list> 
</item> 
<item 
    android:drawable="@drawable/btn" /> 
</selector> 

работает действительно хорошо!

+0

ПРИМЕЧАНИЕ: Google говорит: «Не надо. Тени никогда не приближаются красящим материалом». http://www.google.com/design/spec/what-is-material/material-properties.html#material-properties-physical-properties –

-1

Вышеупомянутое решение не работает для меня каким-то образом. Вместо кнопки ничего не отображается. Ниже мой код, который работал:

Первое: добавить в layout file:

android:background="@drawable/new_button" 

Второе: Создание new_button.xml файла, в котором show3 является файл с изображением

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
    <layer-list> 
     <item android:left="4dp" android:top="4dp"> 
     <bitmap android:src="@drawable/show3"/>     
     </item> 
    </layer-list> 
    </item> 
    <item> 
    <layer-list> 
     <!-- SHADOW LAYER --> 
     <item android:left="4dp" android:top="4dp"> 
     <shape> 
      <solid android:color="#66000000" /> 
      <corners android:radius="10dip"/> 
     </shape> 
     </item> 
     <!-- CONTENT LAYER --> 
     <item android:bottom="4dp" android:right="4dp"> 
     <bitmap android:src="@drawable/show3"/>    
     </item> 
    </layer-list> 
    </item> 
</selector> 

основном пришлось добавить растровое к пункту.

0

Try объявляя фон, как эффект тени и источника, как изображения кнопки:

<ImageButton 
     android:background="@android:drawable/dialog_holo_light_frame" 
     android:src="@drawable/books" 
    /> 
Смежные вопросы