この記事の例では、ポップアップウィンドウがポップアップした後に画面の背景が半透明になることを実現する Android プログラミングの方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです。
Android でポップアップウィンドウが表示された後、画面の背景が半透明になるのはよくあることです。これを達成するには多くの方法があります。私が使用しているのはおそらく最も単純なもので、getWindows の透明度を設定することです。コードについてはあまり言うことはありません
/** * 设置添加屏幕的背景透明度 * @param bgAlpha */ public void backgroundAlpha(float bgAlpha) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = bgAlpha; //0.0-1.0 getWindow().setAttributes(lp); }
これがメソッドとして設定されている理由は、ポップウィンドウを閉じたときに透明度を元に戻す必要があるためです。
popWin = new PopupWindow(popAddNoteType, mScreenWidth *8 /10, ViewGroup.LayoutParams.WRAP_CONTENT); //在PopupWindow里面就加上下面代码,让键盘弹出时,不会挡住pop窗口。 popWin.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); popWin.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); //点击空白处时,隐藏掉pop窗口 popWin.setFocusable(true); popWin.setBackgroundDrawable(new BitmapDrawable()); backgroundAlpha(1f); //添加pop窗口关闭事件 popWin.setOnDismissListener(new poponDismissListener());
ここで誰かが尋ねるかもしれませんが、画面の空白領域をクリックすると、ポップウィンドウは消えますが、背景はまだ半透明です、これは問題ありません。ここではイベント
/** * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来 * @author cg * */ class poponDismissListener implements PopupWindow.OnDismissListener{ @Override public void onDismiss() { // TODO Auto-generated method stub //Log.v("List_noteTypeActivity:", "我是关闭事件"); backgroundAlpha(1f); } }
を使用します。上記のコード
popWin.setOnDismissListener(new poponDismissListener());
は、このイベントを呼び出すことです
この記事が Android プログラミングの皆様のお役に立てれば幸いです。
popupwindow ポップアップを実装するための Android プログラミングの詳細については、画面の背景が半透明になります。関連記事については、PHP 中国語 Web サイトに注目してください。