CollapsingToolbarLayout:setShadowLayer

Sim*_*mon 3 android textview android-collapsingtoolbarlayout

collapsingToolbarLayout在折叠模式和展开模式下都显示了用户名.

展开时看起来像这样:

在此输入图像描述

半坍塌时看起来像这样:

在此输入图像描述

您可以看到白色文本在展开模式下与背景图像不能很好地协同工作.

通常为了提高文本的清晰度,如果这是一个textview,我通常会setShadowLayer:http://developer.android.com/reference/android/widget/TextView.html#setShadowLayer( float,%20float,%20float,% 20int)

在这种情况下,因为它是a collapsingToolbarLayout,它不是a textview,所以看起来该方法不可用于在文本后面设置阴影.

有没有人知道一种方法可以增加文本的澄清,collapsingToolbarLayout例如可能在文本中collapsingToolbarLayout添加阴影或添加阴影?

Sim*_*mon 7

我通过查看这个帖子来解决这个问题:

Android CollapsingToolbarLayout标题背景

用户实际上问了一个非常相似的问题,答案是使用一个非常好用的文本保护稀松布.

为方便起见,我正在复制和粘贴代码:

使用文本保护稀松布(向下滚动一下).我的示例假设标题文本为白色,因此可能需要进行一些调整以优化您的案例.

在您的CollapsingToolbarLayout中,在ivBigImage之后添加以下内容:

<View
    android:layout_width="match_parent"
    android:layout_height="@dimen/sheet_text_scrim_height_top"
    android:background="@drawable/scrim_top"
    app:layout_collapseMode="pin"/>

<View
    android:layout_width="match_parent"
    android:layout_height="@dimen/sheet_text_scrim_height_bottom"
    android:layout_gravity="bottom"
    android:layout_alignBottom="@+id/image"
    android:background="@drawable/scrim_bottom"/>
Run Code Online (Sandbox Code Playgroud)

在Drawable文件夹中,添加:

scrim_top.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
    android:angle="270"
    android:startColor="@color/translucent_scrim_top"
    android:centerColor="@color/translucent_scrim_top_center"
    android:endColor="@android:color/transparent"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

和scrim_bottom.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
    android:angle="90"
    android:startColor="@color/translucent_scrim_bottom"
    android:centerColor="@color/translucent_scrim_bottom_center"
    android:endColor="@android:color/transparent"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

对于颜色,我用过:

<color name="translucent_scrim_top">#26000000</color>
<color name="translucent_scrim_top_center">#0C000000</color>
<color name="translucent_scrim_bottom">#2A000000</color>
<color name="translucent_scrim_bottom_center">#0D000000</color>
Run Code Online (Sandbox Code Playgroud)

对于尺寸,我使用了88dp的高度.

以下是应用代码后的效果:

在此输入图像描述