在布局的右侧和底部添加阴影。

14

我想在布局的右侧和底部添加一个轻微的阴影。我尝试使用android:background="@android:drawable/dialog_holo_light_frame",但这会在布局的四个边缘添加厚重的阴影。我需要创建哪种可绘制对象并将其设置为背景?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@android:drawable/dialog_holo_light_frame">
       <ImageView
                android:id="@+id/g"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="centerCrop"
                android:layout_gravity="center"
                android:src="@drawable/logo_icon"
                android:visibility="visible"
                android:clickable="true" />
</LinearLayout>

请参考此链接:https://dev59.com/12Up5IYBdhLWcg3w8LB4 - Madhu
我认为你需要选择自定义阴影效果。 - VVB
这就是我所参考的,它起作用了。https://dev59.com/0Gcs5IYBdhLWcg3wPxrN - Prabhuraj
是的,Nine Patch会起作用。 搜索一下,这里有一个例子: https://dev59.com/cGAf5IYBdhLWcg3w9mts#31722183 - Nilay Dani
3个回答

18

我想这可能解决了你的问题

 <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape>
                <padding android:bottom="2dp" android:left="0dp" android:right="2dp"
                         android:top="0dp"/>
                <solid android:color="#00CCCCCC"/>
            </shape>
        </item>
        <item>
            <shape>
                <padding android:bottom="2dp" android:left="0dp" android:right="2dp"
                         android:top="0dp"/>
                <solid android:color="#10CCCCCC"/>
            </shape>
        </item>
        <item>
            <shape>
                <padding android:bottom="2dp" android:left="0dp" android:right="2dp"
                         android:top="0dp"/>
                <solid android:color="#20CCCCCC"/>
            </shape>
        </item>
        <item>
            <shape>
                <padding android:bottom="2dp" android:left="0dp" android:right="2dp"
                         android:top="0dp"/>
                <solid android:color="#30CCCCCC"/>
            </shape>
        </item>
        <item>
            <shape>
                <padding android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp"/>
                <solid android:color="#50CCCCCC"/>
            </shape>
        </item>

        <!-- Background -->
        <item>
            <shape>
                <solid android:color="@color/white"/>
                <corners android:radius="3dp"/>
            </shape>
        </item>
    </layer-list>

然后将其应用到 XML 布局作为背景的 LinearLayoutandroid:background="@drawable/drawable_name"


1
这是我提到的方法,它很有效。
1.添加一个灰色的普通LinearLayout,在其上方添加你实际的布局,底部和右侧的边距为1或2 dp。
2.使用带有阴影的9-patch图像,并将其设置为线性布局的背景。 其他解决方案在这里

点1是个好主意! - NightFury

-3
只需将android:hardwareAccelerated="true"放入您的清单应用程序中即可。

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