获得屏幕相关的Android辅助类

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

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
118
119
import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.Rect; 
import android.util.DisplayMetrics; 
import android.view.View; 
import android.view.WindowManager; 
   
//获得屏幕相关的辅助类 
public class ScreenUtils 
    private ScreenUtils() 
    
        /* cannot be instantiated */ 
        throw new UnsupportedOperationException("cannot be instantiated"); 
    
   
    /**
     * 获得屏幕高度
     
     * @param context
     * @return
     */ 
    public static int getScreenWidth(Context context) 
    
        WindowManager wm = (WindowManager) context 
                .getSystemService(Context.WINDOW_SERVICE); 
        DisplayMetrics outMetrics = new DisplayMetrics(); 
        wm.getDefaultDisplay().getMetrics(outMetrics); 
        return outMetrics.widthPixels; 
    
   
    /**
     * 获得屏幕宽度
     
     * @param context
     * @return
     */ 
    public static int getScreenHeight(Context context) 
    
        WindowManager wm = (WindowManager) context 
                .getSystemService(Context.WINDOW_SERVICE); 
        DisplayMetrics outMetrics = new DisplayMetrics(); 
        wm.getDefaultDisplay().getMetrics(outMetrics); 
        return outMetrics.heightPixels; 
    
   
    /**
     * 获得状态栏的高度
     
     * @param context
     * @return
     */ 
    public static int getStatusHeight(Context context) 
    
   
        int statusHeight = -1
        try 
        
            Class<?> clazz = Class.forName("com.android.internal.R$dimen"); 
            Object object = clazz.newInstance(); 
            int height = Integer.parseInt(clazz.getField("status_bar_height"
                    .get(object).toString()); 
            statusHeight = context.getResources().getDimensionPixelSize(height); 
        } catch (Exception e) 
        
            e.printStackTrace(); 
        
        return statusHeight; 
    
   
    /**
     * 获取当前屏幕截图,包含状态栏
     
     * @param activity
     * @return
     */ 
    public static Bitmap snapShotWithStatusBar(Activity activity) 
    
        View view = activity.getWindow().getDecorView(); 
        view.setDrawingCacheEnabled(true); 
        view.buildDrawingCache(); 
        Bitmap bmp = view.getDrawingCache(); 
        int width = getScreenWidth(activity); 
        int height = getScreenHeight(activity); 
        Bitmap bp = null
        bp = Bitmap.createBitmap(bmp, 0, 0, width, height); 
        view.destroyDrawingCache(); 
        return bp; 
   
    
   
    /**
     * 获取当前屏幕截图,不包含状态栏
     
     * @param activity
     * @return
     */ 
    public static Bitmap snapShotWithoutStatusBar(Activity activity) 
    
        View view = activity.getWindow().getDecorView(); 
        view.setDrawingCacheEnabled(true); 
        view.buildDrawingCache(); 
        Bitmap bmp = view.getDrawingCache(); 
        Rect frame = new Rect(); 
        activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); 
        int statusBarHeight = frame.top; 
   
        int width = getScreenWidth(activity); 
        int height = getScreenHeight(activity); 
        Bitmap bp = null
        bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height 
                - statusBarHeight); 
        view.destroyDrawingCache(); 
        return bp; 
   
    
   
}