iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android的单位以及屏幕分辨率详解
  • 497
分享到

Android的单位以及屏幕分辨率详解

屏幕分辨率分辨率Android 2022-06-06 10:06:04 497人浏览 薄情痞子
摘要

一、常用的单位:相对单位主要有:px、sp、dp绝对单位主要有:pt、in、mm 二、单位应用总结:一般用相对单位,而不是绝对单位1、字体的大小一般使用SP,用此单位的字体能够

一、常用的单位:相对单位主要有:px、sp、dp
绝对单位主要有:pt、in、mm

二、单位应用总结:一般用相对单位,而不是绝对单位
1、字体的大小一般使用SP,用此单位的字体能够根据用户设置字体的大小而自动缩放

2、空间等相对距离一般使用dp(dip),随着密度变化,对应的像素数量也变化,但并没有直接的相对比例的变化。

3、px与实际像素有关,及与密度有关!dp和sp和实际像素没有关系,对于一定分辨率但不同密度的屏幕,px单位的应用可能会导致长度的相对比例的变化。

三、密度与分辨率:
密度值表示每英寸有多少个显示点,与分辨率是两个概念。

其屏幕密度标准是:HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120

具体的应用运算关系:假设分辨率是 x*y, 密度为 d, 屏幕实际大小为 a*b那么关系为 x*y = d * a * b (约等于)

不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)

四、对比总结:
1、在相同密度(即同一实体屏幕)不同分辨率的情况下,与实体密度无关的相对单位sp和dp显示正常

2、在相同分辨率不同密度的情况下,因为一般情况下,都用的标准密度,所以分析的意义不是很大

其他资料:
px:是屏幕的像素点
in:英寸
mm:毫米
pt:磅,1/72 英寸
dp:一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px
dip:等同于dp
sp:同dp相似,但还会根据用户的字体大小偏好来缩放。
建议使用sp作为文本的单位,其它用dip
针对dip和px 的关系,做以下概述:
HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120
density值表示每英寸有多少个显示点,与分辨率是两个概念。
不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例

density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
状态栏和标题栏高各19px或者25dip
横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip

density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip

density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip

apk的资源包中,当屏幕density=240时使用hdpi 标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位dip,少使用px
下面是几种不同单位的相互转换.
代码如下:
public static int dip2px(Context context, float dipValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue){
final float scale = context.getResource().getDisplayMetrics().density;
return (int)(pxValue / scale + 0.5f);
}
public static int dip2px(Context context, float dipValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue){
final float scale = context.getResource().getDisplayMetrics().density;
return (int)(pxValue / scale + 0.5f);
}

下面说下如何获取分辨率:

在一个Activity的onCreate方法中,写入如下代码:
代码如下:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels;  // 屏幕宽度(像素)
int height = metric.heightPixels;  // 屏幕高度(像素)
float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)

这还是挺简单的, 可是你有没有在800*480的机器上试过, 是不是得到的宽度是533 ? 因为Android刚开始时默认的density是1.0 , 此时你可以再manifest.xml中加入

1.uses-sdk节点, <uses-sdk android:minSdkVersion="4" /> , 表示不sdk1.6以下的机器不能安装你的apk了.

2.supports-screens 节点.
代码如下:
<supports-screens
android:smallScreens="true"
android:nORMalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />

您可能感兴趣的文章:Android加载大分辨率图片到手机内存中的实例方法android根据分辨率自动调整字体大小的实例代码android开发中获取手机分辨率大小的方法android 分辨率适配的方法Android基础之使用Fragment适应不同屏幕和分辨率(分享)Android的分辨率和屏幕适配详解Android 屏幕分辨率的整理


--结束END--

本文标题: Android的单位以及屏幕分辨率详解

本文链接: https://www.lsjlt.com/news/27408.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android开发中中常见的屏幕分辨率有哪些
    Android开发中中常见的屏幕分辨率有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android 屏幕分辨率的整理这些术语都是指屏幕的分辨率。VGA:Video Gra...
    99+
    2023-05-31
    android 中常 roi
  • windows屏幕分辨率调不了如何解决
    本篇内容主要讲解“windows屏幕分辨率调不了如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows屏幕分辨率调不了如何解决”吧!屏幕分辨率怎么调不了检查屏幕是否正常,如有HDM...
    99+
    2023-07-01
  • vue项目适配屏幕分辨率与屏幕的缩放适配详细教程
    目录解决方案全局导入App.vue刷新页面笔记本或者显示器 默认设置125%或者150%缩放,导致布局错乱的解决方法 现在很多14寸的笔记本,出厂默认就是150%的显示。导致很多时候...
    99+
    2022-11-13
    vue 屏幕分辨率 vue 适配屏幕分辨率 vue适配屏幕的缩放 vue适配屏幕
  • 电脑屏幕分辨率调高了黑屏如何解决
    本文小编为大家详细介绍“电脑屏幕分辨率调高了黑屏如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑屏幕分辨率调高了黑屏如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。屏幕分辨率调高了黑屏解决方法开...
    99+
    2023-07-01
  • 虚拟主机的屏幕分辨率低怎么解决
    如果虚拟主机的屏幕分辨率低,可以尝试以下解决方法:1. 调整虚拟主机的屏幕分辨率:在虚拟主机的操作系统设置中,尝试调整屏幕分辨率到更...
    99+
    2023-08-23
    虚拟主机
  • Ubuntu屏幕分辨率不能设置怎么解决
    这篇文章主要介绍“Ubuntu屏幕分辨率不能设置怎么解决”,在日常操作中,相信很多人在Ubuntu屏幕分辨率不能设置怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ubuntu屏幕分辨率不能设置怎么解决...
    99+
    2023-07-04
  • Android 开发中获取屏幕宽高(分辨率)的几种方式
    Android 开发中获取屏幕宽高(分辨率)的几种方式 获得手机屏幕的宽高 :(方式一) 获取WindowManager有两种方式:1: WindowManager wm = this.getSyst...
    99+
    2023-09-08
    android
  • win10电脑屏幕分辨率调不了如何解决
    这篇文章主要介绍“win10电脑屏幕分辨率调不了如何解决”,在日常操作中,相信很多人在win10电脑屏幕分辨率调不了如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10电脑屏幕分辨率调不了如何解决...
    99+
    2023-07-01
  • win7电脑中怎么调整屏幕的分辨率
    这篇文章主要介绍win7电脑中怎么调整屏幕的分辨率,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法/工具: 鼠标右键点击桌面空白处,在弹出的快捷菜单中点击“屏幕分辨率”。在以下界面中点击“分辨率”后的选框,使用按钮...
    99+
    2023-06-27
  • Android屏幕及view的截图实例详解
    Android屏幕及view的截图实例详解屏幕可见区域的截图 整个屏幕截图的话可以用View view = getWindow().getDecorView();public static Bitmap getNormalViewScree...
    99+
    2023-05-31
    android view截图 roi
  • VMware虚拟机更改Mac系统的屏幕分辨率
    安装VMware Tools 在虚拟机设置中将CD/DVD指定为darwin.iso 链接:https://pan.baidu.com/s/112-SeQ1YNUcRK_RsrP-6ZQ  提取码:o8iw  --来自百度网盘超级会员V5的...
    99+
    2023-09-15
    macos linux 运维
  • 云电脑的屏幕分辨率和色彩显示如何
    云电脑的屏幕分辨率和色彩显示取决于用户所连接的客户端设备,因此可以具有不同的性能和显示效果。通常情况下,云电脑的屏幕分辨率和色彩显示...
    99+
    2024-04-17
    云电脑
  • 更改WinXP屏幕分辨率的大小防止眼睛疲劳
    每一台电脑都有一个最适合的分辨率,如果电脑屏幕分辨率没有设置好,或大或小都会影响视力,造成眼睛疲劳,一旦发现系统屏幕分辨率不正常就要进行设置调整,那么在WinXP系统下,用户要怎么来更改屏幕分辨率的大小呢?   WinX...
    99+
    2023-06-04
    winxp 屏幕 分辨率 眼睛 大小 WinXP
  • Java编程获取当前屏幕分辨率的方法示例
    本文实例讲述了Java编程获取当前屏幕分辨率的方法。分享给大家供大家参考,具体如下:package com.leo.util;class ScreenSize{ private int screenWidth; private int ...
    99+
    2023-05-31
    java 屏幕 ava
  • 如何解决VirtualBox中Ubuntu 14.04屏幕分辨率不能设置的问题
    这篇文章主要介绍了如何解决VirtualBox中Ubuntu 14.04屏幕分辨率不能设置的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在VirtualBOx虚拟机中U...
    99+
    2023-06-09
  • flutter开发实战-获取屏幕显示大小及物理像素分辨率
    flutter开发实战-获取屏幕显示大小及物理像素分辨率 在开发过程中,经常遇到需要获取屏幕显示的大小及物理像素分辨率,这里会用到MediaQuery,MediaQuery必须依赖BuildConte...
    99+
    2023-09-24
    flutter javascript 开发语言
  • Mac电脑录屏导出黑边如何解决?SwitchResX屏幕分辨率修改技巧
    Mac电脑录制屏幕视频时两边有黑边,无论是将录制格式设置为1080p还是默认分辨率,最终生成的视频两边都有黑边,遇到这种情况如何解决呢?原因是 mac 录制出的视频分辨率比例是 16:10 ,比需要的 16...
    99+
    2024-04-02
  • Vue指令实现大屏元素分辨率适配详解
    目录前言1. 常见的适配方案2. CSS3 缩放方案3. 封装一个缩放指令4. 后记前言 随着前端技术的不断发展、数据中心(中台)之类的概念的不断升级、物联网设备的更新和普及,越来越...
    99+
    2024-04-02
  • xp系统主题和桌面背景和屏幕保护以及分辨率等技巧的设置方法是怎样的
    这期内容当中小编将会给大家带来有关xp系统主题和桌面背景和屏幕保护以及分辨率等技巧的设置方法是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。     &nbs...
    99+
    2023-06-14
  • win10分辨率太高导致黑屏的解决方法
    这篇文章主要介绍win10分辨率太高导致黑屏的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!win10分辨率太高导致黑屏怎么办首先在开机时按F8键进入使系统进入到高级模式中。如图选择安全模式后按下Enter确...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作