2012-10-24 48 views
1

我希望在調用showDialog時使用linearlayout執行相同的效果。禁用線性佈局的所有組件很容易,但我如何更改顏色?將linearLayout更改爲全部內容

是否可以在佈局上投影?

謝謝你的回答。

+0

您可以'setAlpha'的母體透明度適用於所有視圖的孩子。 – jnthnjns

回答

1

感謝奧紹剋意見,我發現這一點:

Set Alpha/Opacity of Layout

它正在爲我工​​作正確。

我如何setClickable到所有子方式:

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; 
} 
+0

您能否將此答案標記爲已接受,爲未來的求職者。謝謝! – jnthnjns

0

我不認爲我很好地理解你想要做什麼。如果您只想更改佈局的顏色,則可以在XML聲明中使用android:background屬性或編程方式使用佈局對象上的方法setBackgroundsetBackgroundResource執行此操作。如果你想讓你要顯示的活動看起來有點像一個對話框(具有半透明的背景等),最簡單的方法就是像平時一樣將所有內容放在該佈局上,然後將主題應用於表現:

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

抱歉沒有足夠的描述。在菜單按鈕上單擊我想從屏幕頂部顯示自己的菜單。屏幕的所有其餘部分(一個linearLayout)我想更改爲較暗的顏色並禁用。 – vlkpo

0

可以setAlpha的母體透明度適用於所有視圖的孩子。

這裏是我創建的視圖疊加我的主要佈局我採取的方法的一個例子:

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

mainRelativeLayout,在這種情況下,包含了許多ImageViewsTextViews,所有繼承了透明度。這給了我一個影子的效果。


ViewsetAlpaha僅支持API 11+或平臺版本/ Android操作系統版本3.0 +

+1

這就是我在找什麼,但是一個setAlpha方法有API 3.0,(我們大多數人仍然瞄準2.x)。爲我的linearLayout聲音的每個孩子設置此字段變得複雜。它將需要設置爲背景,textColor,hintColor ....? – vlkpo

+0

我找到了AlphaAnimation的解決方案。非常感謝你! – vlkpo

+0

@vlkpo +1好點和好的發現,只是爲了澄清未來的訪問者''View'類的setAlpaha'是API 11+或平臺版本/ Android操作系統版本3.0+ – jnthnjns