showDialog を呼び出すときのように、linearlayout で同じ効果を実現したいと思います。線形レイアウトのすべてのコンポーネントを無効にするのは簡単ですが、色を変更するにはどうすればよいですか?
レイアウトに影を落とすことはできますか?
答えてくれてありがとう。
showDialog を呼び出すときのように、linearlayout で同じ効果を実現したいと思います。線形レイアウトのすべてのコンポーネントを無効にするのは簡単ですが、色を変更するにはどうすればよいですか?
レイアウトに影を落とすことはできますか?
答えてくれてありがとう。
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;
}
あなたのやりたいことがよくわからなかったと思います。レイアウトの色を変更したいだけの場合は、android:background
属性を使用して XML 宣言で行うか、メソッドを使用してプログラムで行うsetBackground
かsetBackgroundResource
、レイアウト オブジェクトで行うことができます。表示しようとしているアクティビティをダイアログのように (半透明の背景などで) 表示したい場合、最も簡単な方法は、通常のようにすべてをそのレイアウトに残し、上のアクティビティにテーマを適用することです。マニフェスト:
<activity android:theme="@android:style/Theme.Dialog">
setAlpha
親に対して、ビューのすべての子に透明度を適用できます。
プライマリ レイアウトをオーバーレイするビューを作成したときに取ったアプローチの例を次に示します。
RelativeLayout mainRelativeLayout = (RelativeLayout)findViewById(R.id.mainlayout);
mainRelativeLayout.setAlpha((float).45);
mainRelativeLayout
この場合、Myには多くのものが含まれてImageViews
おり、TextViews
すべてが透明度を継承しています。これにより、影を持つ効果が得られました。
setAlpaha
クラスの は、View
API 11 以降またはプラットフォーム バージョン / Android OS Ver 3.0 以降でのみサポートされます。