ScreenUtils

package com.tmeos.xueliang.util;

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;

/** 
* @author  
* Creat on:
* @version V1.0  
*/
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;  
	  
	    }  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值