2012-03-02 3 views
1

Мне нужно реализовать такую ​​кнопку для моего приложения для Android. Было бы здорово сделать это без использования полного изображения в качестве кнопки.
Я сделал почти ту же кнопку, используя <shape> с <gradient>. Единственное, что мне нужно, это добавить нижнюю синюю тень кнопки и включить изображение.Как я могу создать такую ​​кнопку?

Button

Возможно ли это?

Заранее спасибо.

+2

самый быстрый способ заключается в использовании 9-патч изображения – waqaslam

ответ

1

Вы можете сделать это, объединив Drawable Drawable внутри Layered Drawable. Чтобы сделать это, вы будете иметь 3 файла XML, как показано ниже:

  • button.xml (тот, у вас уже есть я предполагаю)

    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
        android:shape="rectangle" > 
    
        <corners android:radius="16dp" /> 
    
        <gradient 
         android:angle="270" 
         android:centerColor="#FFFFFF" 
         android:endColor="#CAEBF8" 
         android:startColor="#FFFFFF" 
         android:type="linear" /> 
    
        <padding 
         android:bottom="8dp" 
         android:left="8dp" 
         android:right="8dp" 
         android:top="8dp" /> 
    
        <stroke 
         android:width="2dp" 
         android:color="#FFFFFF" /> 
    
    </shape> 
    
  • button_bg.xml (добавить синюю границу ниже кнопки)

    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
    
        <corners android:radius="16dp" /> 
    
        <solid android:color="#6FC8F1" /> 
    
    </shape> 
    
  • layered_button.xml (объединить предыдущий XML, и рисуем, чтобы использовать в качестве фона на кнопке)

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    
        <item android:drawable="@drawable/button_bg"/> 
        <item 
         android:bottom="2dp" 
         android:drawable="@drawable/button"/> 
    
    </layer-list> 
    

Вы найдете более подробную информацию о списке слоев в Drawables Documentation

1

Создайте атрибут вашей кнопки android:background, чтобы указать желаемое изображение. Создайте свое изображение с текстом и иконкой маленького человека. Невозможно одновременно разместить текст и изображение внутри кнопки.

Для синей тени вы можете либо включить ее в свой образ, либо получить тот же результат с атрибутом градиента, как вы уже сказали в своем вопросе.

+0

и почему это downvoted? –

+0

Вы можете поместить текст и изображение внутри кнопки, это называется составной вид, в котором у вас есть атрибут android: drawableLeft (также сверху, снизу и справа), чтобы добавить изображение влево (и, соответственно, в другие направления) текста. Это может помочь добавить значок в EditText или, как в примере, изображение в кнопке – XGouchet

+0

Спасибо за информацию, пожалуйста, объясните свои downvotes с этого момента. –

-1

Для изображения, вы должны использовать

android:drawableRight 

Как для тени я не уверен, как это достигается.

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