Android 浮动弹框PopupWindow
浮动弹框简单样例:
1.Activity:
package com.example.myapi.popupwindow; import java.util.ArrayList; import android.app.Activity; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.PopupWindow; import com.example.myapi.R; /** * 浮动窗口实例 * @author USER * */ public class PopupWindowActivity extends Activity implements OnClickListener{ private PopupWindow more; private LayoutInflater inflater; private View layout; private Button btn; private ListView listview; ArrayAdapter<String> adapter; ArrayList<String> list = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.popup); btn = (Button)findViewById(R.id.btn_popup); btn.setOnClickListener(this); adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getData()); /*listview = (ListView)findViewById(R.id.listview); listview.setAdapter(adapter);*/ //实例化PopupWindow创建菜单 initMore(); } public void onClick(View v) { if(btn.getId() == v.getId()){ if(!more.isShowing()){ show(btn); } } } public void initMore(){ //实例化LayoutInflater inflater = (LayoutInflater)this.getSystemService(this.LAYOUT_INFLATER_SERVICE); //获取弹框布局 layout = inflater.inflate(R.layout.more, null); ListView listView = (ListView)layout.findViewById(R.id.listview); listView.setAdapter(new PopupWindowAdapter(this, getData())); //设置PopupWindow的布局 more = new PopupWindow(layout, 100, 200); more.setWidth(150); more.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); //使其聚焦 more.setFocusable(true); //设置允许在外点击消失 more.setOutsideTouchable(true); // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景 more.setBackgroundDrawable(new BitmapDrawable()); } //显示window public void show(View anchor){ // more.showAtLocation(this.findViewById(R.id.popup_layout), Gravity.BOTTOM|Gravity.RIGHT, 0, 0); more.showAsDropDown(anchor); } private ArrayList<String> getData(){ list.add("朋友"); list.add("家人"); list.add("同学"); list.add("同事"); list.add("陌生人"); list.add("我的好友"); return list; } }
2.主文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/popup_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn_popup" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
复制以上代码,体验一下吧。。
浙公网安备 33010602011771号