2016-08-02 12 views
1

Добрый день, я пытаюсь создать en ImageButton с тенью.ImageButton elevation issue

Чтобы сделать это:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:padding="5sp"> 

    <ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/circle_shape_little" 
     android:src="@drawable/ic_keyboard_arrow_right_black_24dp" 
     android:elevation="3sp"/> 
</LinearLayout> 

Но вот результат:

enter image description here

Как вы можете видеть, границы "вырезать", и я не знаю, почему.

Кто-нибудь может мне помочь? Спасибо.

+0

попробуйте изменить все 'sp' на' dp' – Enzokie

+0

Не работает, спасибо в любом случае! –

+0

@ D.Math Попробуйте добавить эту строку 'android: outlineProvider =" bounds "'. –

ответ

4

Добавить layout_margin в ваш ImageButton. elevation тени отсекается на поля View (который по умолчанию к нулю):

<ImageButton 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:layout_margin="5dp" 
    android:background="@drawable/circle_shape_little" 
    android:src="@drawable/ic_keyboard_arrow_right_black_24dp" 
    android:elevation="3dp"/> 

В качестве альтернативы, вы можете установить padding из вида и установить clipToPadding="false", но это может привести к неожиданным результатам в зависимости от макета ,

Наконец, вы should be с помощью dp для всего, кроме textSize, в этом случае вы будете использовать sp.

+1

Это было решение. Спасибо! –