-1

我真的很喜欢 Google I/O 2014 应用程序中的新材料设计,我想在我的应用程序中实现一些。我一直在尝试查看源代码,但无法弄清楚如何实现,所以我的问题是是否有人知道是否有一些更简单的示例?我有两个设计,第一个是有一个像这样的操作栏:它看起来像我有两个微调器的大 acionbar。

https://dl.dropboxusercontent.com/u/68771663/2014-09-09%2008.46.13.png

第二个是这个:

https://dl.dropboxusercontent.com/u/68771663/2014-09-09%2008.46.41.png

我想这个回答有点棘手。。

4

1 回答 1

2

第一个基本上是一个常规ActionBar的布局,包含两个并排的自定义微调器,就在它的正下方。通过将以下行添加到应用程序主题(在 res/values/styles 中)将属性ActionBar设置为 null,已禁用了底部阴影:windowContentOverlay

<item name="android:windowContentOverlay">@null</item>

您还会注意到包含微调器的布局底部有一个微妙的阴影。这可以通过在 xml 中创建一个带有渐变的可绘制形状来添加。此渐变设置为具有 270 度角,具有深色起始颜色和浅色/透明结束颜色(也可以包括中间颜色)。现在,您可以View在微调器容器下添加一个,如下所示:

<View 
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@drawable/<name_of_your_shape_drawable"/>

现在,来到第二张图,我们可以清楚地看到ActionBar启用了叠加模式,这可以通过在应用程序主题中添加以下行来完成:

<item name="android:windowActionBarOverlay">true</item>

如果您只希望特定活动具有覆盖ActionBar,那么您可以在之前添加以下行setContentView

    getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

转到顶部图像的视差效果,您首先需要获取滚动视图/列表视图的 yScroll 值(以像素为单位),然后简单地将其转换ImageView为 yScroll 值的一半:

    imageView.setTranslationY((float) (yScroll/2));

请参阅此链接以从以下位置获取滚动值ScrollViewhttp ://cyrilmottier.com/2013/05/24/pushing-the-actionbar-to-the-next-level/

我不太确定最后一点涉及动画以ActionBar在标题布局触及它时为它着色。可能需要查看源代码。

于 2014-09-09T08:05:26.193 回答