我正在尝试在前棒棒糖设备上为自定义视图添加阴影。我正在使用这个xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="8px">
<layer-list>
<item>
<shape android:shape="oval">
<solid android:color="#08000000"/>
<padding
android:bottom="3px"
android:left="3px"
android:right="3px"
android:top="3px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#09000000"/>
<padding
android:bottom="2px"
android:left="2px"
android:right="2px"
android:top="2px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#10000000"/>
<padding
android:bottom="2px"
android:left="2px"
android:right="2px"
android:top="2px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#11000000"/>
<padding
android:bottom="1px"
android:left="1px"
android:right="1px"
android:top="1px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#12000000"/>
<padding
android:bottom="1px"
android:left="1px"
android:right="1px"
android:top="1px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#13000000"/>
<padding
android:bottom="1px"
android:left="1px"
android:right="1px"
android:top="1px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#14000000"/>
<padding
android:bottom="1px"
android:left="1px"
android:right="1px"
android:top="1px"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#15000000"/>
<padding
android:bottom="1px"
android:left="1px"
android:right="1px"
android:top="1px"
/>
</shape>
</item>
</layer-list>
</item>
<item android:drawable="@drawable/ripple" android:state_pressed="false"/>
<item android:drawable="@drawable/ripple_dark" android:state_pressed="true"/>
</layer-list>
在我的布局中:
<ImageButton
android:id="@+id/view"
android:layout_width="54dp"
android:layout_height="54dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_gravity="bottom|right|end"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/background"
android:contentDescription="@string/play"
android:src="@drawable/image" />
问题在于我希望图像按钮为54dpx54dp,但如果我添加填充,则内部图像会更小。我应该添加更多的dp来补偿填充,但我不知道我该怎么办。有什么帮助吗?
答案 0 :(得分:0)
只需在每个需要阴影的元素的底部添加以下视图:
<View
android:id="@+id/shadow"
android:layout_width="fill_parent"
android:layout_height="5dp"
android:layout_below="@+id/..."
android:background="@drawable/drop_shadow" />
drop_shadow.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#bfbbbf"
android:endColor="#F1F1F1"
android:angle="270">
</gradient>
</shape>