wxr
2022-11-24 2af932533ef851bf983385244e9912976dbd4daa
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
package com.lechange.demo.view;
 
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
 
import com.common.openapi.entity.DeviceDetailListData;
import com.lechange.demo.R;
import com.lechange.demo.adapter.PixelListAdapter;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * 显示支持分辨率的弹框
 */
public class LcPopupWindow extends PopupWindow {
 
    private RecyclerView pixelRecycle;
//    private ArrayList<DeviceDetailListData.ResponseData.DeviceListBean.ChannelsBean.ResolutionBean> mData = new ArrayList<>();
    private PixelListAdapter mPixelAdapter;
 
    public LcPopupWindow(Context context, List<DeviceDetailListData.ResponseData.DeviceListBean.ChannelsBean.ResolutionBean> dataList) {
        super(context);
        setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
        setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
        setOutsideTouchable(true);
        setFocusable(true);
        setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        View contentView = LayoutInflater.from(context).inflate(R.layout.view_pixel_popwindow,
                null, false);
        pixelRecycle = contentView.findViewById(R.id.pixel_recycle);
        pixelRecycle.setLayoutManager(new LinearLayoutManager(context));
        mPixelAdapter = new PixelListAdapter(context,dataList);
        pixelRecycle.setAdapter(mPixelAdapter);
        setContentView(contentView);
    }
 
    public void setPixelRecycleListener(onRecyclerViewItemClickListener listener){
        mPixelAdapter.setOnItemClickListener(listener);
    }
 
    @SuppressWarnings("ResourceType")
    public int makeDropDownMeasureSpec(int measureSpec) {
        int mode;
        if (measureSpec == ViewGroup.LayoutParams.WRAP_CONTENT) {
            mode = View.MeasureSpec.UNSPECIFIED;
        } else {
            mode = View.MeasureSpec.EXACTLY;
        }
        return View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.getSize(measureSpec), mode);
    }
 
    public  interface onRecyclerViewItemClickListener{
        void onItemClick(RecyclerView parent, View view, int position,String name,int imageSize,int streamType);
    }
 
}