PopupWindow的基本用法
1、PopupWindow的作用
PopupWindow控件,可以在屏幕任何地方以彈出框的方式顯示任何View
2、PopupWindow的使用步驟
- 初始化彈出框所需要顯示的View對象
- 初始化彈出框,並將View對象傳遞給彈出框
- 調用PopupWindow.showXXX方法將彈出框顯示到屏幕上的具體位置
/**
* PopupWindow控件,可以在屏幕任何地方以彈出框的方式顯示任何View
* 1 初始化彈出框所需要顯示的View對象
* 2 初始化彈出框,並將View對象傳遞給彈出框
* 3 調用PopupWindow.showXXX方法將彈出框顯示到屏幕上的具體位置
*
*/
public class MainActivity extends Activity implements OnClickListener{
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//將所點擊的View控件傳遞給showPopupWindow方法
showPopupWindow(v);
}
private void showPopupWindow(View anchor) {
//1 初始化彈出框所需要顯示的View
TextView textView = new TextView(this);
textView.setText("這是一個文本文件");
// 2初始化彈出框,並傳遞View對象,以及彈出框的寬高
//此處的LayoutParams用ViewGroup的包
PopupWindow pWindow = new PopupWindow(textView,
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
/*
* 設置用戶點擊其他區域時,彈窗隱藏
* 此方法需要給PopupWindow設置一個BitmapDrawable作爲背景
*/
pWindow.setOutsideTouchable(true);
pWindow.setBackgroundDrawable(new BitmapDrawable());
//3 顯示彈出框
/**
* showAsDropDown(View anchor, int xOffset, int yOffset)
* anchor 將彈出框顯示在anchor的左下角
* xOffset 水平偏移
* yOffset 垂直偏移
*/
pWindow.showAsDropDown(anchor, 30, 50);
}
}