lmw
2024-09-25 92778728b83ce1a34ba21bcdb061afdeca16cce5
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
package com.ypx.imagepicker.views.base;
 
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.LinearLayout;
 
import androidx.annotation.Nullable;
 
import com.ypx.imagepicker.ImagePicker;
 
/**
 * Time: 2019/11/11 14:33
 * Author:ypx
 * Description:所有View的基类,其中包含了dp、getScreenWidth
 */
public abstract class PBaseLayout extends LinearLayout {
    protected View view;
 
    /**
     * @return item布局id
     */
    protected abstract int getLayoutId();
 
    /**
     * @param view 初始化view
     */
    protected abstract void initView(View view);
 
    public PBaseLayout(Context context) {
        super(context);
        init();
    }
 
    public PBaseLayout(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }
 
    public PBaseLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }
 
    private void init() {
        view = LayoutInflater.from(getContext()).inflate(getLayoutId(), this, true);
        initView(view);
    }
 
 
    protected int dp(float dp) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                dp, getContext().getResources().getDisplayMetrics());
    }
 
    protected int getScreenWidth() {
        WindowManager wm = (WindowManager) getContext()
                .getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        assert wm != null;
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.widthPixels;
    }
 
    public void onBackPressed() {
        if (getContext() instanceof Activity) {
            ((Activity) getContext()).onBackPressed();
        }
    }
 
    protected int getThemeColor() {
        return ImagePicker.getThemeColor();
    }
}