如何在Android按钮上创建阴影(材质设计)
这里我想问一个简单的问题让我很困惑, 我正在开发一个android应用程序,我想使用材料设计主题 但是当我尝试在RaisedButton下编码阴影时,它不起作用。 我的意思是,它只是在按钮周围划一圈,而不是在阴影周围 师傅,帮帮我,有什么简单的方法可以制作这个影子吗?? 谢谢 注意。这是我的custon_button.xml如何在Android按钮上创建阴影(材质设计),android,css,material-design,Android,Css,Material Design,这里我想问一个简单的问题让我很困惑, 我正在开发一个android应用程序,我想使用材料设计主题 但是当我尝试在RaisedButton下编码阴影时,它不起作用。 我的意思是,它只是在按钮周围划一圈,而不是在阴影周围 师傅,帮帮我,有什么简单的方法可以制作这个影子吗?? 谢谢 注意。这是我的custon_button.xml <item android:state_pressed="true" > <shape> <solid
<item android:state_pressed="true" >
<shape>
<solid
android:color="@color/solidpress"
/>
<stroke
android:width="1dp"
android:color="@color/strokepress" />
<corners
android:radius="2dp" />
<padding
android:left="5dp"
android:top="10dp"
android:right="1dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" > //focused fuck shit man
<shape>
<solid
android:color="@color/solidfocus"
/>
<stroke
android:width="3dp"
android:color="@color/strokefocus" />
<corners
android:radius="2dp" />
<padding
android:left="5dp"
android:top="10dp"
android:right="5dp"
android:bottom="10dp" />
</shape>
</item>
<item> // normal
<shape>
<solid
android:color="@color/solidnormal" />
<stroke
android:width="1dp"
android:color="@color/strokenormal" />
<corners
android:radius="2dp" />
<padding
android:left="5dp"
android:top="10dp"
android:right="1dp"
android:bottom="10dp" />
</shape>
</item>
shadow.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item android:right="5dp" android:top="5dp">
<shape>
<corners android:radius="3dp" />
<solid android:color="#D6D6D6" />
</shape>
</item>
<item android:bottom="2dp" android:left="2dp">
<shape>
<gradient android:angle="270"
android:endColor="#E2E2E2" android:startColor="#BABABA" />
<stroke android:width="1dp" android:color="#BABABA" />
<corners android:radius="4dp" />
<padding android:bottom="10dp" android:left="10dp"
android:right="10dp" android:top="10dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
请查看此材质类型的阴影:Shadow.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item android:right="5dp" android:top="5dp">
<shape>
<corners android:radius="3dp" />
<solid android:color="#D6D6D6" />
</shape>
</item>
<item android:bottom="2dp" android:left="2dp">
<shape>
<gradient android:angle="270"
android:endColor="#E2E2E2" android:startColor="#BABABA" />
<stroke android:width="1dp" android:color="#BABABA" />
<corners android:radius="4dp" />
<padding android:bottom="10dp" android:left="10dp"
android:right="10dp" android:top="10dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
看看这种材质的阴影:如果rajan ks的答案不起作用,你可以尝试将按钮包装在CardView中(
android.support.v7.widget.CardView
),并使用其app:cardElevation
属性给CardView一些提升
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="4dp"
app:cardPreventCornerOverlap="false">
<Button />
</android.support.v7.widget.CardView>
如果rajan ks的答案无效,您可以尝试将按钮包装到CardView(
android.support.v7.widget.CardView
)中,并使用其app:cardElevation
属性为CardView提供一些提升
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="4dp"
app:cardPreventCornerOverlap="false">
<Button />
</android.support.v7.widget.CardView>
请看这个
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"><layer-list>
<item><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#036b86" android:startColor="#01bff3"></gradient>
<corners android:radius="5dp" />
</shape></item>
<item android:bottom="3dp"><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#01bff3"></gradient>
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
<corners android:radius="5dp" />
</shape></item>
</layer-list></item>
<item android:state_pressed="true"><layer-list>
<item ><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#036b86"></gradient>
<corners android:radius="5dp" />
</shape></item>
<item android:top="3dp"><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#01bff3"></gradient>
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
<corners android:radius="5dp" />
</shape></item>
</layer-list></item>
</selector>
请看这个
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"><layer-list>
<item><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#036b86" android:startColor="#01bff3"></gradient>
<corners android:radius="5dp" />
</shape></item>
<item android:bottom="3dp"><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#01bff3"></gradient>
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
<corners android:radius="5dp" />
</shape></item>
</layer-list></item>
<item android:state_pressed="true"><layer-list>
<item ><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#036b86"></gradient>
<corners android:radius="5dp" />
</shape></item>
<item android:top="3dp"><shape>
<gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#01bff3"></gradient>
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
<corners android:radius="5dp" />
</shape></item>
</layer-list></item>
</selector>
我尝试过这个代码,但它看起来像一个旧的按钮样式,我的意思是有一个渐变,但我寻找的是材质设计按钮样式,。谢谢你回答我的问题:)我试过这个代码,但它看起来像一个旧的按钮样式,我的意思是有一个梯度,但我所寻找的是材料设计按钮样式,。谢谢你回答我的问题:)是的,兄弟,我认为它工作了,现在只是如何给按钮添加表面反应??哦,是的,我忘了一件事,我如何设置阴影的深度和大小??调整是的,兄弟,我认为它工作了,现在只是如何给按钮添加表面反应??哦,是的,我忘了一件事,如何设置阴影的深度和大小??调整