Android UI:PopupWindow基本学习

来源:互联网 发布:ddos攻击防御软件 编辑:程序博客网 时间:2024/05/19 18:42

什么是PopupWindow?

     就是点击某个控件,弹出个view,弹出的view就是PopupWindow
效果图:点击button,弹出PopWindow,里面又有4个button,点击第一个button,弹出toast。


popwindow对应的布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >          <Button          android:id="@+id/btn_pop"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="btn01"        android:textSize="20px" />            <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="btn02"        android:textSize="20px" />      <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="btn03"        android:textSize="20px" />      <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="btn0"        android:textSize="20px" /></LinearLayout>

3 代码

package com.examp.popupwindowdemo;import android.os.Bundle;import android.app.Activity;import android.graphics.Color;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.ColorDrawable;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.Toast;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button btn=(Button) findViewById(R.id.btn);        btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//打开popupwindowshowPopupWindow(v);}});    }    protected void showPopupWindow(View v) {View contentView = View.inflate(getApplicationContext(), R.layout.popwindow, null);PopupWindow popupWindow = new PopupWindow(contentView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);popupWindow.setTouchable(true);//popupwindow可点击popupWindow.setOutsideTouchable(true);//popupwindow以外的地方可点击,使其调用dismiss()方法,不设置这个点击popupwindow以外的区域pop不会消失popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//必须设置Drawable背景(2中方法)//popupWindow.setBackgroundDrawable(new  BitmapDrawable());Button btn_pop=(Button) contentView.findViewById(R.id.btn_pop);btn_pop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(getApplicationContext(), "pop弹出toast", Toast.LENGTH_LONG).show();}});popupWindow.showAsDropDown(v);}}

其他弹框

[Dialog](http://blog.csdn.net/ss1168805219/article/details/52489259?locationNum=2&fps=1)[PopupWinow](http://blog.csdn.net/ss1168805219/article/details/50539919)[Spinner](http://blog.csdn.net/ss1168805219/article/details/52799813?locationNum=3&fps=1) 


0 0