TakePhotoPopWin.java 3.01 KB
package com.cnlive.goldenline.ui.widget;

import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.cnlive.goldenline.R;

/**
 * Created by zhangshuai on 2016-04-25.
 */
public class TakePhotoPopWin extends PopupWindow {

    private Context mContext;
    private View view;
    private TextView tv_cancel;
    private LinearLayout ll_take_photo, ll_pick_photo;


    public TakePhotoPopWin(Context mContext, View.OnClickListener itemsOnClick,String tag) {

        this.view = LayoutInflater.from(mContext).inflate(R.layout.pop_take_photo, null);

        ll_take_photo = (LinearLayout) view.findViewById(R.id.ll_take_photo);
        ll_pick_photo = (LinearLayout) view.findViewById(R.id.ll_pick_photo);
//        ll_changeHead= (LinearLayout) view.findViewById(R.id.ll_changeHead);
        tv_cancel = (TextView) view.findViewById(R.id.tv_cancel);
//        title= (TextView) view.findViewById(R.id.changeTitleTag);
//        if (null!=tag&&!TextUtils.isEmpty(tag)){
//            title.setText(tag);
//        }
        // 取消按钮
        tv_cancel.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // 销毁弹出框
                dismiss();
            }
        });
        // 设置按钮监听
        ll_pick_photo.setOnClickListener(itemsOnClick);
        ll_take_photo.setOnClickListener(itemsOnClick);

        // 设置外部可点击
        this.setOutsideTouchable(true);
        // mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
        this.view.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View v, @NonNull MotionEvent event) {

                int height = view.findViewById(R.id.pop_layout).getTop();

                int y = (int) event.getY();
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    if (y < height) {
                        dismiss();
                    }
                }
                return true;
            }
        });


    /* 设置弹出窗口特征 */
        // 设置视图
        this.setContentView(this.view);
        // 设置弹出窗体的宽和高
        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);

        // 设置弹出窗体可点击
        this.setFocusable(true);

        // 实例化一个ColorDrawable颜色为半透明
        ColorDrawable dw = new ColorDrawable(0xb0000000);
        // 设置弹出窗体的背景
        this.setBackgroundDrawable(dw);

        // 设置弹出窗体显示时的动画,从底部向上弹出
        this.setAnimationStyle(R.style.take_photo_anim);

    }

}