如何删除button阴影(android)

我想删除button的阴影,使其看起来更平坦。

我现在有这个:

取消与阴影的按钮

但是我想要这个:

取消按钮没有阴影

另一个select是添加

style="?android:attr/borderlessButtonStyle" 

到你的buttonXML文件在这里http://developer.android.com/guide/topics/ui/controls/button.html

一个例子是

 <Button android:id="@+id/button_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" style="?android:attr/borderlessButtonStyle" /> 

一个简单的方法就是将这个标签添加到你的button:

 android:stateListAnimator="@null" 

虽然它需要API等级21或更多..

我使用自定义样式

 <style name="MyButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless"></style> 

尝试: android:stateListAnimator="@null"

Java的

 setStateListAnimator(null); 

XML

 android:stateListAnimator="@null" 

使用这个作为你的button的背景可能会有所帮助,根据需要改变颜色

 <?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape android:shape="rectangle"> <solid android:color="@color/app_theme_light" /> <padding android:left="8dp" android:top="4dp" android:right="8dp" android:bottom="4dp" /> </shape> </item> <item> <shape android:shape="rectangle"> <solid android:color="@color/app_theme_dark" /> <padding android:left="8dp" android:top="4dp" android:right="8dp" android:bottom="4dp" /> </shape> </item> </selector> 

@ Alt-Cat的答案为我工作!

R.attr.borderlessButtonStyle不包含阴影。

而button的文件是伟大的。

另外,你可以在你的自定义button上,在第二个构造函数中设置这个样式。

  public CustomButton(Context context, AttributeSet attrs) { this(context, attrs, R.attr.borderlessButtonStyle); } 

您可以使用TextView并在java代码中添加一个单击监听器,而不是button。

在活动布局xml中:

 <TextView android:id="@+id/btn_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimaryDark" android:text="@string/btn_text" android:gravity="center" android:textColor="@color/colorAccent" android:fontFamily="sans-serif-medium" android:textAllCaps="true" /> 

在活动java文件中:

 TextView btnTextView = (TextView) findViewById(R.id.btn_text_view); btnTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // handler code } }); 

你的活动中的android:theme =“@ android:style / Theme.NoTitleBar”也可以帮助你