問題は、ポップアップ ウィンドウを表示した後、すべてのアクティビティの背景 (色: #fff) が半透明になることです。背景を別の色 (#f0f など) に変更すると、半透明になりません。また、デバッグしても半透明になりません。また、半透明効果はアルファ値によって変化します。元。setAlpha(50) を setAlpha(150) に変更すると、半透明効果が変わります。これは、popupWindow の contentView の背景色と他のアクティビティとの間に何らかの関係があるようです。
私のコードは以下です。
popup = PopWin.popupWindow(context, TestActivity.this, popid);
View contentView = popup.getContentView();
contentView.getBackground().setAlpha(50);
public static PopupWindow popupWindow(final Context context,
final View view, int rsid) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View popView = inflater.inflate(rsid, null, false);
final PopupWindow popWin = new PopupWindow(popView,
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, true);
popWin.setBackgroundDrawable(new BitmapDrawable());
popWin.setFocusable(true);
popWin.showAtLocation(view, Gravity.CENTER, 0, 0);
return popWin;
}
下の画像は半透明になった時のスクリーンショットです。
http://g.hiphotos.baidu.com/zhidao/pic/item/aec379310a55b3191df0b28343a98226cffc173e.jpg
正しい状態では、グレー/ブラックの領域はすべて白 (#fff) です。