第2天PopupWindow弹出窗体
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.pop_windown);
}
public void click(View view) {
PopupWindow popupWindow = new PopupWindow(this);
final View inflate = LayoutInflater.from(this).inflate(R.layout.pop, null);
popupWindow.setContentView(inflate);
//半透明
final WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.alpha=0.5f;
getWindow().setAttributes(layoutParams);
//设置popupWindow大小
popupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
//设置是否外界点击后消失
popupWindow.setOutsideTouchable(true);
//添加动画
popupWindow.setAnimationStyle(R.style.pop_style);
//获取焦点
popupWindow.setFocusable(true);
//设置popWindow消失监听器
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams layoutParams1 = getWindow().getAttributes();
layoutParams.alpha=1f;
getWindow().setAttributes(layoutParams);
}
});
View view1 = LayoutInflater.from(this).inflate(R.layout.activity_main, null);
popupWindow.showAtLocation(view1, Gravity.CENTER,0,0);
}
}
public class MyPopupWindow extends PopupWindow {
private Context context;
private LayoutInflater inflater;
private View view;
public MyPopupWindow(Context context) {
super(context);
this.context = context;
inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view=inflater.inflate(R.layout.pop,null);
setContentView(view);
setWidth(WindowManager.LayoutParams.MATCH_PARENT);
setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
setAnimationStyle(R.style.pop_style);
//能否获得焦点
setFocusable(true);
setBackgroundDrawable(new ColorDrawable());
}