2

showDialog を呼び出すときのように、linearlayout で同じ効果を実現したいと思います。線形レイアウトのすべてのコンポーネントを無効にするのは簡単ですが、色を変更するにはどうすればよいですか?

レイアウトに影を落とすことはできますか?

答えてくれてありがとう。

4

3 に答える 3

1

Asokのアドバイスのおかげで、私はこれを見つけました:

レイアウトのアルファ/不透明度を設定

それは私にとって正しく機能しています。

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

あなたのやりたいことがよくわからなかったと思います。レイアウトの色を変更したいだけの場合は、android:background属性を使用して XML 宣言で行うか、メソッドを使用してプログラムで行う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);

mainRelativeLayoutこの場合、Myには多くのものが含まれてImageViewsおり、TextViewsすべてが透明度を継承しています。これにより、影を持つ効果が得られました。


setAlpahaクラスの は、ViewAPI 11 以降またはプラットフォーム バージョン / Android OS Ver 3.0 以降でのみサポートされます。

于 2012-10-24T21:07:06.450 に答える