Android代码获取屏幕内容,Android 获取屏幕的多种宽高信息的示例代码

本文主要介绍了Android 获取屏幕的多种宽高信息的示例代码,分享给大家,具体如下:

包含的宽高信息如下图所示:

d6c5c19c8765af29b66ae97c50e9159a.png

在模拟器上获取到的数据:

08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920

08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080

08-26 07:19:34.211 7834-7834/com.czy.screeninfo E/MainActivity: getAvailableScreenHeight 1794

08-26 07:19:34.979 7834-7834/com.czy.screeninfo E/MainActivity: getStatusBarHeight 63

08-26 07:19:35.580 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeightIfRoom 126

08-26 07:19:36.340 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeight 126

08-26 07:19:37.048 7834-7834/com.czy.screeninfo E/MainActivity: getTitleHeight 147

具体的代码:

/**

* 作者: chenZY

* 时间: 2017/8/26 14:37

* 描述:

*/

public class ScreenUtils {

/**

* 返回包括虚拟键在内的总的屏幕高度

* 即使虚拟按键显示着,也会加上虚拟按键的高度

*/

public static int getTotalScreenHeight(Activity activity) {

DisplayMetrics displayMetrics = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);

return displayMetrics.heightPixels;

}

/**

* 返回屏幕的宽度

*/

public static int getScreenWidth(Activity activity) {

DisplayMetrics displayMetrics = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);

return displayMetrics.widthPixels;

}

/**

* 返回屏幕可用高度

* 当显示了虚拟按键时,会自动减去虚拟按键高度

*/

public static int getAvailableScreenHeight(Activity activity) {

DisplayMetrics displayMetrics = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

return displayMetrics.heightPixels;

}

/**

* 状态栏高度

*/

public static int getStatusBarHeight(Activity activity) {

int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");

return activity.getResources().getDimensionPixelSize(resourceId);

}

/**

* 获取虚拟按键的高度

* 会根据当前是否有显示虚拟按键来返回相应的值

* 即如果隐藏了虚拟按键,则返回零

*/

public static int getVirtualBarHeightIfRoom(Activity activity) {

DisplayMetrics displayMetrics = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

int usableHeight = displayMetrics.heightPixels;

activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);

int realHeight = displayMetrics.heightPixels;

return realHeight - usableHeight;

}

/**

* 获取虚拟按键的高度,不论虚拟按键是否显示都会返回其固定高度

*/

public static int getVirtualBarHeight(Activity activity) {

int resourceId = activity.getResources().getIdentifier("navigation_bar_height", "dimen", "android");

return activity.getResources().getDimensionPixelSize(resourceId);

}

/**

* 标题栏高度,如果隐藏了标题栏则返回零

*/

public static int getTitleHeight(Activity activity) {

return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();

}

/**

* 将dp值转换为px值

*/

public static int dp2px(Context context, float dpValue) {

float scale = context.getResources().getDisplayMetrics().density;

return (int) (dpValue * scale + 0.5f);

}

/**

* 将px值转换为dp值

*/

public static int px2dp(Context context, float pxValue) {

float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值