将linearLayout更改为包含所有内容的黑暗

时间:2012-10-24 20:14:32

标签: android android-linearlayout

我想在调用showDialog时使用linearlayout做同样的效果。很容易禁用线性布局的所有组件,但如何更改颜色?

是否有可能在布局上留下一些阴影?

感谢您的回答。

3 个答案:

答案 0 :(得分:1)

感谢Asok的建议,我发现了这个:

Set Alpha/Opacity of Layout

这对我来说是正确的。

我如何将setClickable设置为ALL child:

TraverseChildren(GetChildren(_llRest), false);

,其中

private void TraverseChildren(ArrayList<View> childrenList, boolean b) {
    for (View view : childrenList) {

        view.setClickable(b);
        view.setEnabled(b);

        if (view instanceof ViewGroup)
            TraverseChildren(GetChildren((ViewGroup)view), b);
    }   
}

private ArrayList<View> GetChildren(ViewGroup view) {
    ArrayList<View> children = new ArrayList<View>();
        for (int i = 0; i < view.getChildCount(); i++) 
            if (view.getChildAt(i) != null)
                children.add(view.getChildAt(i));
    return children;
}

答案 1 :(得分:0)

我认为我不太清楚你想做什么。如果您只想更改布局的颜色,可以使用android:background属性在XML声明中执行此操作,也可以使用布局对象上的方法setBackgroundsetBackgroundResource以编程方式执行此操作。如果你想让你要显示的活动看起来有点像对话框(具有半透明的背景等),最简单的方法就是像往常一样将所有内容留在该布局上,并将主题应用于清单:

<activity android:theme="@android:style/Theme.Dialog">

答案 2 :(得分:0)

您可以setAlpha向父级将透明度应用于所有视图子级。

以下是我创建视图以覆盖主要布局时所采用的方法示例:

RelativeLayout mainRelativeLayout = (RelativeLayout)findViewById(R.id.mainlayout);
mainRelativeLayout.setAlpha((float).45);

在这种情况下,我的mainRelativeLayout包含许多ImageViewsTextViews,它们都继承了透明度。这给了我影子的效果。


setAlpaha类的

View仅支持API 11+或平台版本/ Android OS Ver 3.0 +