PopMenu
package com.mirrormobile.view; import android.content.Context; import android.content.Intent; import android.graphics.drawable.BitmapDrawable; import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; import com.mirrormobile.R; import com.mirrormobile.activity.FriendActivity; import com.mirrormobile.activity.MainActivity; import com.mirrormobile.activity.SettingActivity; import com.mirrormobile.adapter.MenuAdapter; import com.mirrormobile.util.SharedPerManager; import com.mirrormobile.zxing.MipcaActivity; public class MenuPopu implements View.OnClickListener { private final LinearLayout lin_wetting; private final LinearLayout lin_friend_list; private Context mContext; private View mDown; private PopupWindow popupWindow; public MenuPopu(Context context, View down) { this.mContext = context; this.mDown = down; View view = LayoutInflater.from(context).inflate(R.layout.view_menu, null); popupWindow = new PopupWindow(view, SharedPerManager.getWidth() / 2, LinearLayout.LayoutParams.WRAP_CONTENT); lin_wetting = (LinearLayout) view.findViewById(R.id.lin_wetting); lin_friend_list = (LinearLayout) view.findViewById(R.id.lin_friend_list); lin_wetting.setOnClickListener(this); lin_friend_list.setOnClickListener(this); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); popupWindow.setBackgroundDrawable(new BitmapDrawable()); // 点击弹出窗口区域之外的任意区域,则该窗口关闭 popupWindow.setTouchInterceptor(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (v.getId() != mDown.getId() && event.getAction() == MotionEvent.ACTION_OUTSIDE) { popupWindow.dismiss(); return true; } return false; } }); } public void dismiss() { if (popupWindow != null && popupWindow.isShowing()) { popupWindow.dismiss(); } } public void show() { if (popupWindow != null) { popupWindow.showAsDropDown(mDown); } } @Override public void onClick(View view) { switch (view.getId()) { case R.id.lin_friend_list: mContext.startActivity(new Intent(mContext, FriendActivity.class)); break; case R.id.lin_wetting: mContext.startActivity(new Intent(mContext, SettingActivity.class)); break; } dismiss(); } }
布局文件
<?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:background="@color/white" android:orientation="vertical"> <LinearLayout android:id="@+id/lin_friend_list" android:layout_width="@dimen/dimen_150" android:layout_height="@dimen/dimen_50" android:layout_gravity="right" android:orientation="horizontal"> <ImageView android:layout_width="@dimen/dimen_30" android:layout_height="@dimen/dimen_30" android:layout_gravity="center_vertical" android:src="@mipmap/friend_list" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="@dimen/dimen_15" android:text="设备列表" android:textColor="@color/black" /> </LinearLayout> <View android:layout_width="@dimen/dimen_150" android:layout_height="0.5dp" android:layout_gravity="right" android:background="@color/line_color" /> <LinearLayout android:id="@+id/lin_wetting" android:layout_width="@dimen/dimen_150" android:layout_height="@dimen/dimen_50" android:layout_gravity="right" android:orientation="horizontal"> <ImageView android:layout_width="@dimen/dimen_30" android:layout_height="@dimen/dimen_30" android:layout_gravity="center_vertical" android:src="@mipmap/icon_setting" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="@dimen/dimen_15" android:text="设置" android:textColor="@color/black" /> </LinearLayout> </LinearLayout>
界面调用
后边的参数是在那个View下面
mMenuPopu = new MenuPopu(MainActivity.this, iv_pop);
扫描二维码关注公众号,回复:
2393374 查看本文章
mMenuPopu.show();