我正在尝试在 ViewGroup 上制作渐变 alpha。
我知道我可以使用 GradientDrawable,但这只适用于背景。
我需要将 alpha 应用于整个 View ,包括 subview 。
就像我可以为 viewGroup 设置 alpha 一样:
_relativeLayout.setAlpha(1);
如果我设置背景渐变 alpha,它不会应用于它的 subview 。
如何使用渐变获得相同的效果?
提前致谢。
最佳答案
你可以实现一个简单的 DFS 算法来做到这一点
void setAlphaTransitively(View view, float alpha) {
if (view == null) {
return;
}
view.setAlpha(alpha);
if (view instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view;
for (int index = 0; index < viewGroup.getChildCount(); index++) {
View child = viewGroup.getChildAt(index);
setAlphaTransitively(child, alpha);
}
}
}
关于android - 将 alpha 渐变应用于整个 ViewGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283024/