PopWindow用法分三步:
1、实例化PopWindow对象 new PopupWindow(View)
2、准备内容布局。可以通过定义布局和解析布局文件
3、显示PopWindow窗口
4、关闭窗口
第一种方法:直接定义布局
第一步:测试布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mylinearlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onMyClick"
android:text="弹出窗口"/>
</LinearLayout>
第二步:测试类
public class AndroidPracticeTestActivity extends Activity {
private PopupWindow pop;
private TextView tv;
private Button myButton;
LinearLayout ll;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//定义布局类
ll=new LinearLayout(this);
//设置布局参数
ll.setLayoutParams(new LinearLayout.LayoutParams(300, 300));
//定义布局内容
tv=new TextView(this);
tv.setText("你是一个好人");
myButton=new Button(this);
myButton.setText("关闭");
//添加布局内容
ll.addView(tv);
ll.addView(myButton);
pop=new PopupWindow(ll, 250, 250);
//监听弹出框里面的取消按钮
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pop.dismiss();
}
});
}
public void onMyClick(View v){
pop.showAsDropDown(ll, 280, 175);
}
}
第二种方法:通过解析布局文件作为popwindow内容
第一步:window布局内容
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mylinearlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="你是一个好人"
/>
<Button
android:id="@+id/buttonok"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_menu_help"
android:onClick="onMyClick"
android:text="确定"/>
<Button
android:id="@+id/buttoncancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="不一定"/>
</LinearLayout>
第二步:测试类
public class AndroidPracticeTestActivity extends Activity {
private PopupWindow pop;
View view;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
view =this.getLayoutInflater().inflate(R.layout.popwindow_main, null);
pop=new PopupWindow(view, 250, 250);
//获取popwindow布局中的按钮对象
view.findViewById(R.id.buttoncancel).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pop.dismiss();
}
});
}
}