用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - android代码库

ScreenUtils

2016-04-18 作者: PersonLF举报

[android]代码库

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; 
   
    
   
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...