文档章节

关于Android屏幕方面

带梦想一7飞
 带梦想一7飞
发布于 2014/04/24 11:24
字数 297
阅读 19
收藏 0

参考几个网页链接:

http://www.2cto.com//kf/201402/280704.html

http://blog.csdn.net/moruite/article/details/7281428

http://zhidao.baidu.com/link?url=l24PwUM0aq40fD6gzDBaSGYeJURtp2L8yvVQRQmxDWWdLHkFIDJqLrNhpCBIrgXEmzCQ-JylHsDGAvAwW-fkRBSBzhs3chA03wqJ-sah437

dp(dip):设备独立像素

dpi:每英寸的像素个数(120/ 160/ 240/ 320)

density:密度 ( 0.75/ 1.0/ 1.5/ 2.0)

px=dp*(dpi/160)

屏幕尺寸=屏幕对角线的像素值/(密度*160)=   / (密度*160)

需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,如下: <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" /> 这样当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸

 

DisplayMetrics metric = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metric);

int width = metric.widthPixels; // 宽度(PX)

int height = metric.heightPixels; // 高度(PX)

float density = metric.density; // 密度(0.75 / 1.0 / 1.5)

int densityDpi = metric.densityDpi; // 密度DPI(120 / 160 / 240)

 

实践过程:

由于Android设备中获取的密度density本身是个约等于的数值,比如计算出密度的准确值density=1.575,实际在代码中读到的density=1.5, 需要实现一个简单的计算屏幕尺寸的应用在不同设备上验证物理尺寸准确程度,具体代码如下:

实践结果:几个不同设备(手机和平板)的测试结果如下:

 

 

© 著作权归作者所有

共有 人打赏支持
带梦想一7飞
粉丝 19
博文 190
码字总数 99203
作品 0
朝阳
私信 提问
Android 性能优化:手把手教你优化Bitmap图片资源的使用

前言 在 开发中,性能优化策略十分重要 本文主要讲解性能优化中的Bitmap 使用优化,希望你们会喜欢 目录 1. 优化原因 即 为什么要优化图片资源,具体如下图:

Carson_Ho
04/24
0
0
Android7.0 分屏下 Activity 与 Fragment 生命周期(一)

小菜前段时间整理了一篇关于我们真的了解 Activity 与 Fragment 的生命周期吗?的小博文,整理了基础版的关于 Activity 与 Fragment 的生命周期。 后来又一次被一个大大神问到在 Android7.0...

阿策神奇
06/11
0
0
[译] 利用 Android 构建 TV 的未来

原文地址:Building for the future of TV with Android 原文作者:Rachel Berk 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:JayZhaoBoy 校对者:hanliuxin5, Lee...

Android_开发者
04/30
0
0
关于对Layout_weight的理解

最近一段时间,有朋友经常问我关于android布局文件里Layout_weight到底是什么作用,之前我也被困扰,随着知识的增长,也慢慢知道了缘由,并将自己的理解分享如下: layout_weight的权重不是指...

nuke
2013/10/10
0
0
Android应用屏幕适应问题的解决

1、android多屏幕支持机制 Android的支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。 Android平台中支持一系列你所提供的指定大小(size-specific),指定密度...

Android1989
2014/07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
1
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
1
0
技术工坊|如何开发一款以太坊钱包(深圳)

【好消息!】HiBlock区块链技术工坊已经成功举办了26期,其中北京1期,西安1期,成都2期,上海22期。经常有社区的小伙伴问定期举办技术工坊的除了上海以外,其他城市有没有?现在区块链技术工...

HiBlock
昨天
1
0
Redis 梳理笔记

安装 安装gccyum install gcc-c++下载传输到服务器上解压tar -xzvf *.tar.gzcd redis-3.2.9编译make安装 make PREFIX=/usr/local/redis install将配置文件拷贝出来cp redis...

晨猫
昨天
0
0
聊聊storm TridentWindowManager的pendingTriggers

序 本文主要研究一下storm TridentWindowManager的pendingTriggers TridentBoltExecutor.finishBatch storm-core-1.2.2-sources.jar!/org/apache/storm/trident/topology/TridentBoltExecut......

go4it
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部