在Android中以编程方式添加阴影到布局?

时间:2015-02-28 20:33:00

标签: android xml android-layout xamarin

所以我需要将很多LinearLayoutsRelativeLayouts应用到阴影中。但所有这些布局都会有不同的背景颜色。

例如,我有3个LinearLayouts。我需要一个蓝色,一个绿色和一个红色,但都会有相同的阴影和样式(颜色除外)。

我已经创建了这些布局,所以我该怎样做才能手动应用阴影?

如果我创建一个XML drawable,那么我必须为每种颜色创建一个不同的drawable。还有其他办法吗?

我正在考虑制作一个常用功能,我可以传递LinearLayoutRelativeLayout并使用特定纯色作为背景应用阴影效果。

但我不确定是否有办法以编程方式应用阴影。请让我知道我的选择。

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

听起来你需要Outline。既然你提到你想以编程方式执行此操作,那么大纲就可以解决问题。按findViewById()获取布局,使用布局中的getOutlineProvider(),获取ViewOutlineProvider,然后使用getoutline()方法设置自定义的Outline对象,将其创建为阴影到你想要的任何View。 (另请查看官方文档中的this

至于你的选择我不得不说,一般来说你有两个选择。

1)通过XML声明实现阴影作为您膨胀的任何其他View的属性

2)使用Outline进行编程。

答案 1 :(得分:0)

在Android中没有这样的属性来显示阴影。但可能的方法是:

1)添加一个带有颜色的普通LinearLayout / RelativeLayout,在其上添加您的实际布局,底部和右边的边距等于1或2 dp

2)使用带阴影的9补丁图像并将其设置为线性布局/ RelativeLayout的背景