PopWindow记录

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);

mMenuPopu.show();


猜你喜欢

转载自blog.csdn.net/fkgjdkblxckvbxbgb/article/details/78561043
今日推荐