我为椭圆形按钮设置了以下代码,并尝试向其添加黑色阴影。我首先实现了一个椭圆形按钮,并且按需要工作,当我添加<layered-list>
时,它最终变成了一个完全黑色的椭圆形,其中第一项没有显示在任何层上。使它成为阴影并分层显示的任何帮助将不胜感激。
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>
layout \ activity_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" />
答案 0 :(得分:2)
请勿在按钮上使用形状,而应使用FloatingActionButton
以下代码显示了FloatingActionButton应如何出现在布局文件中:
<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默认具有椭圆格式和阴影
希望对您有所帮助!
答案 1 :(得分:1)
在<layer-list>
中的阴影椭圆之后放置浅绿色的椭圆,并使用填充使阴影椭圆可见。
下面是您可以用作其解决方案的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>
答案 2 :(得分:1)
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="40dp"
card_view:cardElevation="3dp"
card_view:cardCornerRadius="2dp"
card_view:cardBackgroundColor="#fff">
您可以将卡片视图用作按钮,通过增加cardCornerRadius尺寸将角变圆,并且cardElevation会保持卡片的阴影。
在使用卡片视图之前,请添加依赖项(使用最新版本的依赖项)
实现'com.android.support:cardview-v7:23.3'
此答案可以帮助您创建椭圆形按钮。