2

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

是否可以在布局上投下一些阴影?

谢谢你的答案。

4

3 回答 3

1

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

设置布局的 Alpha/Opacity

它对我来说是正确的。

我如何将Clickable设置为所有孩子的方式:

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;
}
于 2012-10-25T08:36:58.810 回答
0

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

<activity android:theme="@android:style/Theme.Dialog">
于 2012-10-24T20:41:51.847 回答
0

您可以setAlpha对父级应用透明度到所有视图子级。

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

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

My mainRelativeLayout,在这种情况下,包含许多ImageViews并且TextViews都继承了透明度。这给了我阴影的效果。


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

于 2012-10-24T21:07:06.450 回答