如何使ViewGroup半透明(不透明)

时间:2018-03-26 13:32:39

标签: android android-resources android-viewgroup android-color

我找到了关于透明和半透明差异的描述。这些是重要的部分:

  

半透明意味着什么?如果您正在写一块玻璃,   但那块玻璃是冷淡的,深色的,或者很脏,你   会使用半透明的。

     

透明是什么意思?如果您正在撰写关于一块玻璃的文章,   那块玻璃很清楚,你会用的   透明。透明的东西允许所有光线通过   通过它。清洁的空气和汽车的挡风玻璃是透明的。

如果您想深入了解这一点,请查看here

我想让Android中的ViewGroup半透明。在video我发现如何使活动半透明。他们所做的是定义以下样式和颜色:

<color name="transparent_green_color">#8800ff00</color>

<style name="TranslucentGreen" parent="android:Theme.Translucent">
<item name="android:windowBackground">@color/transparent_green_color</item>
</style>

然后在清单中,在应用程序标记中,他们将这个新样式添加为主题:

<application
    android:theme="@style/TranslucentGreen"
    ...>
...
</application>

我想要做的是使Activity半透明,但使ViewGroup半透明。

我的布局结构如下:

<FrameLayout>
    <RelativeLayout>
        ...
    </RelativeLayout>
    <RelativeLayout>
        ...
    </RelativeLayout>
</FrameLayout>

第二个RelativeLayout应该是半透明的,并且第一个RelativeLayout可以通过半透明template <typename T, typename std::enable_if<std::is_base_of<BaseService, T>::value>::type*> class ServiceLocator { ... }; 看到。怎么做?

1 个答案:

答案 0 :(得分:0)

使用Blurry库解决了我的问题。因此,如果第二个ViewGroup(在我的情况下是第二个RelativeLayout)必须位于顶部而第一个必须透过半透明,那么你需要调用类似的东西:

Blurry.with(context).radius(25).sampling(2).onto(viewGroup);

然后你就有了预期的效果。要返回旧视图状态而不是半透明,您可以使用此方法:

Blurry.delete(viewGroup)

在所需的视图上。我喜欢那个图书馆,因为它非常紧凑。

如果您无法使用外部库,则可以从this Medium article开始。它适用于RenderScriptBitmap class。 Bu应该可以从ViewGroups创建位图。