一、首先来介绍下关于PX、PT、PPI、DPI、DP的知识

术语

说明

PX

(pixel),像素,屏幕上显示数据的最基本的点

PT

(point), 点1pt=1/72英寸

PPI

(pixel per inch),每英寸像素数

DPI

(dot per inch),每英寸点数

DP

即dip(Density-independent pixel), 设备独立像素1dp=160dpi时1px长度

其中px, pt, dp为长度单位,ppi和dpi为密度单位

密度

ldpi

mdpi

hdpi

xhdpi

xxhdpi

密度值

120

160

240

320

480

分辨率

240*320

320*480

480*800

720*1280

1080*1920

图标大小

36*36

48*48

72*72

96*96

144*144

二、下面提供几个常用的方法

1、获取屏幕高度

public int getRealHeight(Activity activity) {

int heightPixels = 0;

Display display = activity.getWindowManager().getDefaultDisplay();

final int VERSION = Build.VERSION.SDK_INT;

if(VERSION < 13) {

display.getHeight();

}else if (VERSION == 13) {

try {

heightPixels = (Integer) Display.class.getMethod("getRawHeight").invoke(display);

} catch (Exception e) {

}

} else {

Point realSize = new Point();

try {

Display.class.getMethod("getRealSize", Point.class).invoke(display, realSize);

heightPixels = realSize.y;

} catch (Exception e) {

}

}

return heightPixels;

}

2、获取屏幕密度

/**

* 获取屏幕密度

* @return

*/

public static float getScreenDensity(Activity activity) {

DisplayMetrics displayMetrics = new DisplayMetrics();

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

return displayMetrics.density;

}

3、获取屏幕可操作区域宽度dp数目

/**

* 获取屏幕可操作区域宽度dp数目

*

* @param activity

* @return

*/

public static float getScreenWidthDp(Activity activity) {

return getScreenWidth(activity) / getScreenDensity(activity);

}

4、获取屏幕高度可操作区域dp数目

/**

* 获取屏幕高度可操作区域dp数目

*

* @param activity

* @return

*/

public static float getScreenHeightDp(Activity activity) {

return getScreenHeight(activity) / getScreenDensity(activity);

}

5、获取屏幕真实宽度dp数目

/**

* 获取屏幕真实宽度dp数目

*

* @param activity

* @return

*/

public static float getRealWidthDp(Activity activity) {

return getRealWidth(activity) / getScreenDensity(activity);

}

6、获取屏幕真实高度dp数目

/**

* 获取屏幕真实高度dp数目

*

* @param activity

* @return

*/

public static float getRealHeightDp(Activity activity) {

return getRealHeight(activity) / getScreenDensity(activity);

}

7、判断是否为平板

public static boolean isTablet(Activity activity) {

return isMoreThan6Inch(activity) && isScreenSizeLarge(activity);

}

/**

* 判断是否大于6英寸

* @param activity

* @return

*/

public static boolean isMoreThan6Inch(Activity activity) {

return getScreenInch(activity) >= 6.0;

}

/**

* 判断设备是否为大尺寸屏幕

*

* @param context

* @return

*/

public static boolean isScreenSizeLarge(Context context) {

return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;

}

总结

以上就是关于Android屏幕知识点的全部内容了,希望本文的内容对各位Android开发者们能有所帮助,如果有疑问大家可以留言交流。

android获取屏幕ppi,快速掌握Android屏幕的知识点相关推荐

  1. android 6.0获取手机imei,android获取手机信息大全,android获取大全,IMEI号,IESI号,...

    android获取手机信息大全,android获取大全,IMEI号,IESI号, IMEI号,IESI号,手机型号: [java] view plaincopyprint?private void g ...

  2. android获取wifi mac地址吗,Android获取当前WiFi的MAC地址-适配所有版本

    ** Android获取当前WiFi的MAC地址 ** package com.dogness.platform.utils; import android.content.Context; impo ...

  3. android获取到电信的手机号码,Android基站信息获取以及Sim卡相关信息获取

    概述: 本篇主要介绍Android获取基站信息的方式,除此之外,还有SIM卡相关字段获取,先介绍一些缩写的概念,后续更新代码的写法. 前言:之前有碰到一个需求,需要获取SIM卡的相关属性:IMSI号. ...

  4. android获取手机短信记录,android 获取手机电话号码和短信内容

    通过ContentResolver 获取到手机的联系人跟手机短信信息并显示出来. 1.实现的代码: package com.example.phone; import java.text.Simple ...

  5. android获取手机sim卡信息,Android获取手机SIM卡运营商信息的方法

    本文实例讲述了Android获取手机SIM卡运营商信息的方法,对于Android程序设计有非常实用的价值.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: /** * 获取SIM卡运营商 ...

  6. ios imei android,获取手机(ios,android)的设备唯一码(mac地址, IMEI)

    获取手机(ios,android)的设备唯一码(mac地址, IMEI) app中总会用到客户端下载量数据统计,一般都是用的设备的唯一码作为标示,以下是获取mac地址的代码片段,记录备份. andro ...

  7. android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...

    目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...

  8. android 获取厂商,动作迅速!Android 11正式版刚出,就有至少4个厂商跟进

    9月9日,在经历了数月的Beta版测试后,谷歌终于推出了新一代操作系统Android 11正式版.主要的亮点有Conversation(对话),可以管理常用的联系人,可以在锁屏上显示消息保证不会错过重 ...

  9. android获取短信息,从其ID Android获取短信详细信息

    我想得到短信的细节(数字,正文,来的时间);我只知道短信的身份. 我可以使用此ID查询"content:// sms"并获取详细信息吗? 目前,我可以循环查询每条消息并获取详细信息 ...

最新文章

  1. 为何 Windows 10X 无法延续 Windows 的成功?
  2. centos mysql拒绝连接失败_CentOS下mysql远程连接的失败的解决方法
  3. C++11获取double类型的最大最小值
  4. 教你如何阅读Oracle数据库官方文档
  5. Eclipse中安装freemarker插件
  6. 博客索引-pyhui-第二版
  7. linux oracle pam,Linux下安装Oracle11g软、硬件环境检测和修改
  8. DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能
  9. matlab2020面板介绍
  10. 以未来式计算机为题目的作文,未来式科技想象作文
  11. erlang的又一力作——英雄联盟聊天服务器
  12. 神来之笔,阿里最新Spring Security源码手册牵动了多少人的心,拿走不谢
  13. 微信大数据推荐算法比赛
  14. Bupt桌游馆--共享资源清单
  15. 【数据集】Kinetics-600 dataset介绍
  16. 看到大神移植系统了,我来整理下市面上的系统...
  17. h5 登录页面_鲁班H5作者:@小小鲁班
  18. ArcGIS JS之 4.23之IIS本地部署与问题解决
  19. COMSOL 专题学习
  20. 关于Go语言的底层,你想知道的都在这里!

热门文章

  1. precision和accuracy的区别?》
  2. layui ,弹出层修改颜色
  3. Linux开机启动后,黑屏只有光标,修复
  4. RPA财务机器人的应用分类丨运行方式维度
  5. 【数据挖掘】4、关联分析:Apriori、FP-Growth 算法、买面包是否也爱买啤酒
  6. html5选择器优先级,css选择器优先级怎么比较
  7. 磁盘挂载失败Couldn't create temporary archive name
  8. oracle的sql执行计划语句,最权威Oracle获取SQL语句执行计划大全
  9. 【新人福利】前端学习路线,再也不用发愁自己该从何学习
  10. Tensorflow笔记__使用mnist数据集并测试自己的手写图片