kimi
2021-02-18 749a5510a9f014446a3cd6ba57b3cb0cc8148dc1
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
package com.mylhyl.circledialog.view;
 
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
 
import com.mylhyl.circledialog.internal.Controller;
import com.mylhyl.circledialog.params.CloseParams;
import com.mylhyl.circledialog.view.listener.CloseView;
 
/**
 * Created by hupei on 2019/1/16 14:11.
 */
public class CloseImgView extends LinearLayout implements CloseView {
    private CloseParams mCloseParams;
    private ImageView mImageCloseView;
 
    public CloseImgView(Context context, CloseParams closeParams) {
        super(context);
        this.mCloseParams = closeParams;
        init();
    }
 
    @Override
    public void regOnCloseClickListener(OnClickListener listener) {
        mImageCloseView.setOnClickListener(listener);
    }
 
    @Override
    public View getView() {
        return this;
    }
 
    private void init() {
        setOrientation(VERTICAL);
        setGravity(Gravity.CENTER_HORIZONTAL);
        if (mCloseParams.closePadding != null && mCloseParams.closePadding.length == 4)
            setPadding(Controller.dp2px(getContext(), mCloseParams.closePadding[0]),
                    Controller.dp2px(getContext(), mCloseParams.closePadding[1]),
                    Controller.dp2px(getContext(), mCloseParams.closePadding[2]),
                    Controller.dp2px(getContext(), mCloseParams.closePadding[3]));
        //关闭按钮
        mImageCloseView = new ImageView(getContext());
        LayoutParams layoutParamsClose = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        if (mCloseParams.closeSize != 0) {
            layoutParamsClose.width = layoutParamsClose.height = Controller.dp2px(getContext(), mCloseParams.closeSize);
        }
        if (mCloseParams.closeResId != 0) {
            mImageCloseView.setImageResource(mCloseParams.closeResId);
        }
        mImageCloseView.setLayoutParams(layoutParamsClose);
        mImageCloseView.setAdjustViewBounds(true);
 
        if (mCloseParams.connectorWidth > 0) {
            DividerView dividerView = new DividerView(getContext());
            dividerView.setBgColor(mCloseParams.connectorColor);
            addView(dividerView, new LayoutParams(Controller.dp2px(getContext(), mCloseParams.connectorWidth),
                    Controller.dp2px(getContext(), mCloseParams.connectorHeight)));
        }
        //位置
        if (mCloseParams.closeGravity == CloseParams.CLOSE_TOP_LEFT
                || mCloseParams.closeGravity == CloseParams.CLOSE_TOP_CENTER
                || mCloseParams.closeGravity == CloseParams.CLOSE_TOP_RIGHT) {
            addView(mImageCloseView, 0);
        } else {
            addView(mImageCloseView);
        }
    }
}