Android Studio-带阴影的椭圆形按钮

Android Studio-带阴影的椭圆形按钮,android,xml,Android,Xml,我有一个椭圆形按钮的下面的代码,并试图添加一个黑色阴影到它。我首先实现了一个椭圆形按钮,它按预期工作,当我添加时,它变成了一个完全黑色的椭圆形,第一个项目没有显示在任何层上。任何帮助,使其作为一个阴影,并出现在层将不胜感激 button_round.xml: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">

我有一个椭圆形按钮的下面的代码,并试图添加一个黑色阴影到它。我首先实现了一个椭圆形按钮,它按预期工作,当我添加
时,它变成了一个完全黑色的椭圆形,第一个项目没有显示在任何层上。任何帮助,使其作为一个阴影,并出现在层将不胜感激

button_round.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item>
     <layer-list>
         <item>
             <shape android:shape="oval">
                 <solid android:color="@color/colorLightGreen"/>
                <size android:width="90dp" android:height="90dp"/>
             </shape>
         </item>
         <item>
             <shape android:shape="oval">
                 <solid android:color="@color/colorShadowDark"/>
                 <size android:width="150dp" android:height="150dp"/>
             </shape>
         </item>
     </layer-list>
  </item>
</selector>

布局\活动\ u main.xml:

<Button
    android:id="@+id/start_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_round"
    android:onClick="startNumberGuessing"
    android:text="@string/startNGString"
    app:elevation="10dp"
    app:layout_constraintBottom_toTopOf="@+id/textView"
    app:layout_constraintEnd_toStartOf="@+id/imageView"
    app:layout_constraintStart_toEndOf="@+id/imageView"
    app:layout_constraintTop_toBottomOf="@+id/textView"
    app:layout_constraintVertical_bias="0.714" />

不要在按钮上使用形状,而是使用

以下代码显示了FloatingAction按钮在布局文件中的显示方式:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:src="@drawable/ic_my_icon"
    android:layout_margin="16dp" />

默认情况下,FloatingActionButton具有椭圆形格式和阴影


我希望这对你有帮助

不要在按钮上使用形状,而是使用

以下代码显示了FloatingAction按钮在布局文件中的显示方式:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:src="@drawable/ic_my_icon"
    android:layout_margin="16dp" />

默认情况下,FloatingActionButton具有椭圆形格式和阴影


我希望这对你有帮助

中的阴影椭圆后放置浅绿色椭圆,并使用填充使阴影椭圆可见

下面是可以用作其解决方案的xml代码

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/colorShadowDark" />
                    <padding android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp" />
                    <size android:width="200dp" android:height="200dp" />
                </shape>
            </item>
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/colorLightGreen" />
                </shape>
            </item>

        </layer-list>
    </item>
</selector>

中的阴影椭圆后放置浅绿色椭圆,并使用填充使阴影椭圆可见

下面是可以用作其解决方案的xml代码

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/colorShadowDark" />
                    <padding android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp" />
                    <size android:width="200dp" android:height="200dp" />
                </shape>
            </item>
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/colorLightGreen" />
                </shape>
            </item>

        </layer-list>
    </item>
</selector>


您可以将“卡片视图”用作按钮,通过增加cardCornerRadius的大小,拐角将变圆,而cardElevation将保持卡片的阴影

在使用卡片视图之前,请添加依赖项(使用最新版本的依赖项)

实现'com.android.support:cardview-v7:23.3'

此答案可能会帮助您创建椭圆形按钮。


您可以将“卡片视图”用作按钮,通过增加cardCornerRadius的大小,拐角将变圆,而cardElevation将保持卡片的阴影

在使用卡片视图之前,请添加依赖项(使用最新版本的依赖项)

实现'com.android.support:cardview-v7:23.3'

这个答案可能会帮助您创建椭圆形按钮