我有一个视图是作为页脚标题服务的。它只是一个视图,你可能认为它是一个按钮或文本视图或布局(我真的对任何东西都持开放态度)。
<RelativeLayout>
<ScrollView >… </ScrollView> //match parent width and height
<MyBottomView/> // align parent bottom
</RelativeLayout>
所以你可以看到ScrollView在MyBottomView下面滚动。我想给MyBottomView添加一个顶部阴影,这样看起来更像是材质设计。我该怎么做呢?
5条答案
按热度按时间4ioopgfo1#
如果你需要阴影只在视图的一侧(例如顶部),你可以在它之前添加另一个视图,并使用渐变阴影作为它的背景。
下面是您必须存储在
drawable
文件夹中的渐变文件top_shadow_gradient.xml
:下面是如何使用它的示例布局:
**重要提示:**根布局必须透明(
android:background="@android:color/transparent"
),“内容”布局需要白色背景(android:background="#ffffff"
)。这就是结果
ybzsozfc2#
以下是一些解决此问题的方法-选择最佳方法:
Android中没有显示阴影的属性,但可能的方法是:
1.添加一个灰色的普通LinearLayout,在其上添加您的实际布局,底部和右侧的边距等于1或2 dp。
1.有一个带阴影的9补丁图像,并将其设置为线性版面的背景。
以及
还有另一个解决方案,通过实现一个层列表,将作为背景的线性布局。
将background_with_shadow.xml文件添加到
res/drawable
中,其中包含:然后添加图层列表作为LinearLayout的背景。
您还可以阅读:http://odedhb.blogspot.com/2013/05/android-layout-shadow-without-9-patch.html
我正在使用Android Studio 0.8.6,但找不到:
所以我找到了这个
它看起来是这样的:
如果您对干净的材质设计效果感兴趣,请阅读以下文档:
jdg4fx2g3#
在hack上,我发现这是把你的视图 Package 在一个父视图中,然后使用rotate。例如,如果你有一个cardview,并且正在添加高程到它,你可以像这样放两个rotate来实现上面的阴影,而不是下面的:
这给出了类似于所附截图的东西。
这仍然有一个问题--这需要在父布局上设置paddingBottom,这意味着很明显,布局上方的任何可滚动同级都不会在其下方。
因此,即使在今天的立面和轮廓提供程序时代,最好还是添加一个半透明视图。
6ojccjat4#
我已经更新了Ivo's优秀的答案,包括使用约束布局。
可提取:shadow_top.xml
布局:
**结果:**按照上述步骤,我能够得到下图中箭头所示的顶部阴影。
对于Android开发的新用户:
**高度调整:**阴影的高度由视图的“v_shadowTop"高度(当前为3dp)控制。
**渐变调整:**渐变的颜色由“shadow_top.xml”可绘制对象中startColor(当前为000000)和endColor(当前为ffffff)的最后六个字符(十六进制代码)控制。
透明度由shadow_top. xml可绘制对象中startColor(当前为40)和endColor(当前为10)的前两个字符控制。
kcrjzv8t5#
仅顶部阴影:
如果你想让阴影出现在其他区域,添加填充
bottom
,right
,left
结果: