如何设置带有图像和阴影的按钮?

8
要制作阴影,需要制作阴影的xml文件,并像这样使用:android:background="@drawable/shadow"。 但是放置图片也可以使用android:background="@drawable/image"
如何在一个按钮上设置按钮阴影和图片?
很抱歉,我不太擅长英语。

点击ImageButton - jigar savaliya
你可以在卡片视图内添加按钮以获得更好的阴影效果。 - darwin
我发现了一段可以制造阴影的代码。但是它必须使用android:background选项。但是将图像放在按钮中也要使用android:background。我想知道如何同时使用它们... - SunSpike
你可以使用ImageButton。 - AskNilesh
3个回答

4

1. 使用ImageButton

你可以使用ImageButton:它会显示一个带有图片的按钮,而不是文本,用户可以按下或点击。默认情况下,ImageButton看起来像一个普通的


在ImageButton上,图片没有完全填充。如何解决? - SunSpike
@DongHyeongJeong,请检查更新后的用户android:layout_height="wrap_content"。 - AskNilesh
当然,我现在正在尝试 :) - SunSpike
在 CardView 中,如何添加阴影? - SunSpike
使用app:cardElevation="10dp"在CardView中添加阴影。 - AskNilesh

2

在res/drawable中创建button_selector.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>

在您的xml布局中:

 <ImageButton
            android:src="@mipmap/ic_launcher"
            android:background="@drawable/shadow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:elevation="10dp"/>

1

使用 CardView 来实现这个功能:

将支持库添加到 dependencies 中,如下所示:

dependencies {
compile 'com.android.support:cardview-v7:25.2.0'//Add respective version
  }

在布局中使用这个。
 <android.support.v7.widget.CardView
                xmlns:card_view="http://schemas.android.com/apk/res-auto"
                android:id="@+id/card_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/user_image"
                app:cardBackgroundColor="@android:color/white"
                android:foreground="?android:attr/selectableItemBackground"
                android:layout_marginLeft="@dimen/activity_horizontal_margin"
                android:layout_marginRight="@dimen/activity_horizontal_margin"
                android:layout_marginTop="@dimen/padding_small"
                android:layout_marginBottom="@dimen/padding_small"
                app:cardCornerRadius="4dp"
                app:cardElevation="10dp" > 

请让我知道是否有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接