IOS
hefeixia
2021-02-18 49f3c1374873f73dbde2983ca0fcf1fb10bfedbf
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
package com.mylhyl.circledialog;
 
import android.app.Activity;
import android.content.res.Resources;
import android.util.DisplayMetrics;
 
final class SystemBarConfig {
 
    private static final String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height";
 
    private final int mStatusBarHeight;
    private final int mScreenWidth;
    private final int mScreenHeight;
 
    public SystemBarConfig(Activity activity) {
        Resources res = activity.getResources();
        mStatusBarHeight = getInternalDimensionSize(res, STATUS_BAR_HEIGHT_RES_NAME);
 
        DisplayMetrics metrics = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        mScreenWidth = metrics.widthPixels;
        mScreenHeight = metrics.heightPixels;
    }
 
    //通过此方法获取资源对应的像素值
    private int getInternalDimensionSize(Resources res, String key) {
        int result = 0;
        int resourceId = res.getIdentifier(key, "dimen", "android");
        if (resourceId > 0) {
            result = res.getDimensionPixelSize(resourceId);
        }
        return result;
    }
 
    public int[] getScreenSize() {
        return new int[]{mScreenWidth, mScreenHeight};
    }
 
    public int getScreenWidth() {
        return mScreenWidth;
    }
 
    public int getScreenHeight() {
        return mScreenHeight;
    }
 
    /**
     * 获取status bar状态栏高度
     *
     * @return 状态栏高度的像素值
     */
    public int getStatusBarHeight() {
        return mStatusBarHeight;
    }
 
}