zhangbo
2017-03-02 80f61dfdab1e7f7fabdfa0fb4931b5d585e4c7d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.bsk.zhangbo.demoforbsk.widget;
 
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
 
import com.bsk.zhangbo.demoforbsk.R;
import com.bsk.zhangbo.demoforbsk.adapter.MyWheelAdapter;
import com.wx.wheelview.widget.WheelView;
 
import java.util.List;
 
/**
 * Created by Sinoe on 2017/2/27.
 */
 
public class SingleSelectionPopup extends PopupWindow implements View.OnClickListener,WheelView.OnWheelItemSelectedListener{
    private View view;
    private TextView mTvConfirm,mTvCancel,mTvTitle;
    private List<String> mList;
    private WheelView mWheelView;
    private Context mContext;
    public SingleSelectionPopup(Context context, List<String> mList,String mTitle) {
        this.mContext = context;
        view = LayoutInflater.from(context).inflate(R.layout.pop_single_selection,null);
        this.mList = mList;
        mTvTitle = (TextView) view.findViewById(R.id.pop_single_title);
        if (mTitle !=null && mTitle.length() > 0){
            mTvTitle.setText(mTitle);
        }else {
            mTvTitle.setText("标题");
        }
        mWheelView = (WheelView) view.findViewById(R.id. pop_single_wheel);
        mWheelView.setOnWheelItemSelectedListener(this);
        mTvCancel = (TextView) view.findViewById(R.id.pop_single_cancel);
        mTvConfirm = (TextView) view.findViewById(R.id.pop_single_confirm);
        mTvCancel.setOnClickListener(this);
        mTvConfirm.setOnClickListener(this);
        mWheelView.setWheelAdapter(new MyWheelAdapter(context));
        mWheelView.setSkin(WheelView.Skin.Holo);
        mWheelView.setWheelData(mList);
        mWheelView.setWheelSize(5);
        mWheelView.setBackgroundResource(R.color.colorBackground);
        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
        style.selectedTextColor = Color.parseColor("#11c3e3");
        style.textColor = Color.parseColor("#bcc6cf");
        style.selectedTextSize = 22;
        style.textSize = 16;
        style.holoBorderColor = Color.parseColor("#11c3e3");
        mWheelView.setStyle(style);
 
        //外部可点击
        setOutsideTouchable(true);
 
        view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                View popLayout = view.findViewById(R.id.pop_single_ll);
                int top = popLayout.getTop();
                int bottom = popLayout.getBottom();
                int left = popLayout.getLeft();
                int right = popLayout.getRight();
                int y = (int) motionEvent.getY();
                int x = (int) motionEvent.getX();
                if (motionEvent.getAction() == MotionEvent.ACTION_UP){
                    if (y<top || y> bottom){
                        dismiss();
                    }
                    if (x < left || x > right){
                        dismiss();
                    }
 
                }
                return true;
            }
        });
 
        /*
             设置窗口特征
         */
        //设置视图
        this.setContentView(this.view);
        //设置窗口宽高
        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
        //设置弹出窗口可点击
        this.setFocusable(true);
        //实例化Color
        ColorDrawable colorDrawable = new ColorDrawable(0x7f000000);
        this.setBackgroundDrawable(colorDrawable);
        this.setAnimationStyle(R.style.PopupAnimation);
    }
 
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.pop_single_cancel:
                dismiss();
                break;
            case R.id.pop_single_confirm:
                dismiss();
                break;
        }
    }
 
    @Override
    public void onItemSelected(int position, Object o) {
        Toast.makeText(mContext,mList.get(position),Toast.LENGTH_SHORT).show();
    }
}