android获取屏幕ppi,快速掌握Android屏幕的知识点
一、首先来介绍下关于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屏幕的知识点相关推荐
- android 6.0获取手机imei,android获取手机信息大全,android获取大全,IMEI号,IESI号,...
android获取手机信息大全,android获取大全,IMEI号,IESI号, IMEI号,IESI号,手机型号: [java] view plaincopyprint?private void g ...
- android获取wifi mac地址吗,Android获取当前WiFi的MAC地址-适配所有版本
** Android获取当前WiFi的MAC地址 ** package com.dogness.platform.utils; import android.content.Context; impo ...
- android获取到电信的手机号码,Android基站信息获取以及Sim卡相关信息获取
概述: 本篇主要介绍Android获取基站信息的方式,除此之外,还有SIM卡相关字段获取,先介绍一些缩写的概念,后续更新代码的写法. 前言:之前有碰到一个需求,需要获取SIM卡的相关属性:IMSI号. ...
- android获取手机短信记录,android 获取手机电话号码和短信内容
通过ContentResolver 获取到手机的联系人跟手机短信信息并显示出来. 1.实现的代码: package com.example.phone; import java.text.Simple ...
- android获取手机sim卡信息,Android获取手机SIM卡运营商信息的方法
本文实例讲述了Android获取手机SIM卡运营商信息的方法,对于Android程序设计有非常实用的价值.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: /** * 获取SIM卡运营商 ...
- ios imei android,获取手机(ios,android)的设备唯一码(mac地址, IMEI)
获取手机(ios,android)的设备唯一码(mac地址, IMEI) app中总会用到客户端下载量数据统计,一般都是用的设备的唯一码作为标示,以下是获取mac地址的代码片段,记录备份. andro ...
- android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...
目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...
- android 获取厂商,动作迅速!Android 11正式版刚出,就有至少4个厂商跟进
9月9日,在经历了数月的Beta版测试后,谷歌终于推出了新一代操作系统Android 11正式版.主要的亮点有Conversation(对话),可以管理常用的联系人,可以在锁屏上显示消息保证不会错过重 ...
- android获取短信息,从其ID Android获取短信详细信息
我想得到短信的细节(数字,正文,来的时间);我只知道短信的身份. 我可以使用此ID查询"content:// sms"并获取详细信息吗? 目前,我可以循环查询每条消息并获取详细信息 ...
最新文章
- 为何 Windows 10X 无法延续 Windows 的成功?
- centos mysql拒绝连接失败_CentOS下mysql远程连接的失败的解决方法
- C++11获取double类型的最大最小值
- 教你如何阅读Oracle数据库官方文档
- Eclipse中安装freemarker插件
- 博客索引-pyhui-第二版
- linux oracle pam,Linux下安装Oracle11g软、硬件环境检测和修改
- DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能
- matlab2020面板介绍
- 以未来式计算机为题目的作文,未来式科技想象作文
- erlang的又一力作——英雄联盟聊天服务器
- 神来之笔,阿里最新Spring Security源码手册牵动了多少人的心,拿走不谢
- 微信大数据推荐算法比赛
- Bupt桌游馆--共享资源清单
- 【数据集】Kinetics-600 dataset介绍
- 看到大神移植系统了,我来整理下市面上的系统...
- h5 登录页面_鲁班H5作者:@小小鲁班
- ArcGIS JS之 4.23之IIS本地部署与问题解决
- COMSOL 专题学习
- 关于Go语言的底层,你想知道的都在这里!
热门文章
- precision和accuracy的区别?》
- layui ,弹出层修改颜色
- Linux开机启动后,黑屏只有光标,修复
- RPA财务机器人的应用分类丨运行方式维度
- 【数据挖掘】4、关联分析:Apriori、FP-Growth 算法、买面包是否也爱买啤酒
- html5选择器优先级,css选择器优先级怎么比较
- 磁盘挂载失败Couldn't create temporary archive name
- oracle的sql执行计划语句,最权威Oracle获取SQL语句执行计划大全
- 【新人福利】前端学习路线,再也不用发愁自己该从何学习
- Tensorflow笔记__使用mnist数据集并测试自己的手写图片