需要在 colapsinglayout 中更改 imageView 的 alpha
Need to change alpha of imageView in colapsinglayout
我在折叠布局中有工具栏、选项卡布局和图像视图。我需要将该图像的 alpha 更改为等于该图像视图的折叠状态。这意味着 ->
图像完全隐藏:alpha = 0%
图像 50% 滚动:alpha = 50%
图像完全显示:alpha = 100%
不幸的是,我还没有找到任何 xml 参数可以影响这个。有什么简单的解决方案吗?
您可以根据需要尝试一些操作。
如果您正在寻找一个简单的解决方案,您可以使用 CollapsingToolbarLayout
上的 app:contentScrim
XML 属性来实现您正在寻找的效果。参见:
如果这还不够,一个更 "correct" 的解决方案将涉及添加一个 OnOffsetChangedListener
并使用它来计算和应用您的 ImageView
的 alpha 变化。参见:
此外,如果您有一些布局,您可以像这样使用滚动侦听器:
appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
float offsetAlpha = (appBarLayout.getY() / appBarLayout.getTotalScrollRange());
int value = 255 - (int)(255 * offsetAlpha * -1);
toolbarTotalContainer.getBackground().setAlpha(value);
});
其中 toolbarTotalContainer
是一些视图的容器。
我在折叠布局中有工具栏、选项卡布局和图像视图。我需要将该图像的 alpha 更改为等于该图像视图的折叠状态。这意味着 ->
图像完全隐藏:alpha = 0%
图像 50% 滚动:alpha = 50%
图像完全显示:alpha = 100%
不幸的是,我还没有找到任何 xml 参数可以影响这个。有什么简单的解决方案吗?
您可以根据需要尝试一些操作。
如果您正在寻找一个简单的解决方案,您可以使用 CollapsingToolbarLayout
上的 app:contentScrim
XML 属性来实现您正在寻找的效果。参见:
如果这还不够,一个更 "correct" 的解决方案将涉及添加一个 OnOffsetChangedListener
并使用它来计算和应用您的 ImageView
的 alpha 变化。参见:
此外,如果您有一些布局,您可以像这样使用滚动侦听器:
appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
float offsetAlpha = (appBarLayout.getY() / appBarLayout.getTotalScrollRange());
int value = 255 - (int)(255 * offsetAlpha * -1);
toolbarTotalContainer.getBackground().setAlpha(value);
});
其中 toolbarTotalContainer
是一些视图的容器。