公共代码参考(DisplayMetrics)

package com.fredric.util;



import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.util.DisplayMetrics;

import android.view.View;

import android.view.WindowManager;



/*-

 * 屏幕交互类封装

 */



public class ScreenUtils {



    //获取屏幕宽度

    public static int getScreenWidth(Context context){

        WindowManager wm = (WindowManager) context  

                .getSystemService(Context.WINDOW_SERVICE);

        //DisplayMetrics提供关于现实的通用信息

        DisplayMetrics display = new DisplayMetrics();        

        //将当前窗口信息放置入display

        wm.getDefaultDisplay().getMetrics(display);        

        //返回绝对像素

        return display.widthPixels;  

    }

    

    //获取屏幕高度

    public static int getScreenHeight(Context context){

        

        WindowManager wm = (WindowManager) context  

                .getSystemService(Context.WINDOW_SERVICE);

        DisplayMetrics display = new DisplayMetrics();

        wm.getDefaultDisplay().getMetrics(display);

        return display.heightPixels;  

    }

    

    //截屏

    public static Bitmap getSnapShot(Activity activity){

        

        //decorView是window的最顶层view

        View view = activity.getWindow().getDecorView();

        //view组件的内容通过cache机制保存至bitmap

        //setDrawingCacheEnabled 开启cache

        //getDrawingCache 获取view的cache图片

        //buildDrawingCache 可不调用,若getDrawingCache调用时cache没有建立则调用

        //destoryDrawingCache 销毁cache,setDrawingCacheEnabled(false)也可销毁cache

        //cache若要更新则必须先销毁旧cache

        view.setDrawingCacheEnabled(true);

        

        Bitmap bp  = null;

        int width  = getScreenWidth(activity);  

        int height = getScreenHeight(activity);   

        bp = Bitmap.createBitmap(view.getDrawingCache(), 0, 0, width, height);  

        view.destroyDrawingCache();  

        return bp; 

    }

}

 

你可能感兴趣的:(display)