一直想学习popupwindow,今天终得所愿
1,先上代码
public class MenuPopupWindow extends PopupWindow implements View.OnClickListener{
private View view;
private OnItemClickListener mListener;
public MenuPopupWindow(Activity context, OnItemClickListener mListener){
LayoutInflater inflater = LayoutInflater.from(context);
view = inflater.inflate(R.layout.layout_popup_menu, null);
this.mListener = mListener;
this.setContentView(view);
this.setWidth(RelativeLayout.LayoutParams.WRAP_CONTENT);
//设置SelectPicPopupWindow弹出窗体的高
this.setHeight(RelativeLayout.LayoutParams.WRAP_CONTENT);
//设置SelectPicPopupWindow弹出窗体可点击
this.setFocusable(false);
this.setOutsideTouchable(true);
this.setBackgroundDrawable(new ColorDrawable(0x00000000));
view.findViewById(R.id.lay_share).setOnClickListener(this);
view.findViewById(R.id.lay_inform).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.lay_share:
mListener.onItemClick(this, 1);
break;
case R.id.lay_inform:
mListener.onItemClick(this, 2);
break;
}
}
public interface OnItemClickListener{
void onItemClick(PopupWindow popupWindow, int position);
}
}
2,调用的方式,如下所示
MenuPopupWindow menuPopupWindow = new MenuPopupWindow(this, new MenuPopupWindow.OnItemClickListener() { @Override public void onItemClick(PopupWindow popupWindow, int position) { popupWindow.dismiss(); } }); menuPopupWindow.showAsDropDown(menu, -200, 40);
3,上配置文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/bg_popup_menu"
android:orientation="vertical">
<LinearLayout
android:id="@+id/lay_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_vertical"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/icon_menu_share"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="分享"
android:textSize="15sp"
android:textColor="@color/white"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@color/commom_background"/>
<LinearLayout
android:id="@+id/lay_inform"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/icon_inform"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="举报"
android:textSize="15sp"
android:textColor="@color/white"/>
</LinearLayout>
</LinearLayout>
4,完成