如您所知,Elevation不适用于Pre-Lollipop设备.因此,appcompat-v7中的默认App Bar使用"伪阴影"纹理,我喜欢称之为模拟阴影.我的问题是我需要使用自定义工具栏.当我使用自定义工具栏时,不存在"伪阴影".所以它看起来很平坦.知道如何添加阴影吗?有些人在其他论坛上说过添加一个前景为"android:windowContentOverlay"的FrameLayout,它以某种方式与ToolBar重叠.遗憾的是,我还没有找到任何办法让这项工作得以实现.出于某种原因,在我的测试中,"android:windowContentOverlay"无论如何都是隐形的.不知道我做错了什么.:/
这是我的工具栏的布局XML数据:
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Run Code Online (Sandbox Code Playgroud)
以下是使用默认AppCompat AppBar的样子:http://imgur.com/0EiE1Vv
以下是使用自定义ToolBar的样子:http://imgur.com/GGEC6Tq
编辑:在alanv的帮助下,我想出了如何在工具栏下面制作阴影.但是,它与AppCompat中的默认设置不同.它只是一个微弱的阴影,如果我没记错的话,它与旧版本中使用的阴影资源相同.我正在努力寻找默认AppCompat栏的资源.
我试图在画布上绘制一个简单的Rect,它的X坐标为360,Y坐标为0.如果我将X坐标设为0,我可以绘制我的Rect,但是当我将它设为360时,正方形变得扭曲,变成矩形而不是正方形.我的屏幕尺寸是640px宽,所以这里应该没问题.我可以用相同的规格绘制位图,它会正常绘制.为什么Rects没有正确绘制?是不是以某种方式X坐标只在DP而不是PX?那为什么会影响Rect的实际大小?我真的很困惑.
Rect square6 = new Rect();
square6.set(360, 0, 60, 60);
Run Code Online (Sandbox Code Playgroud)