`

android计算 pad或手机的像素,密度,屏幕尺寸

 
阅读更多
最近做项目发现,同样的分辨率2台机器,某个界面的样式就是不一样,经过多次测试发现,原来第一台pad(lenovo A1_07)的密度为1.5,转换成dpi是240,属于高密度;另一台pad的密度为1,属于中等密度,转换成dpi就是160,应该属于中等密度
这就发现问题了, 解决方法:
应该在values文件夹下面分别放置values-hdpi, values-mdpi分别对应的样式,就OK了
以下是学习资料


screen resolution
把设备上的物理dpi 用乘法转换成 dips
Androidname   approx. resolution   multiply by this get dips
ldpi          ~120 dpi              1.333
mdpi          ~160 dpi              1.0 (基线密度)
tvdpi        ~213 dpi               0.751
hdpi         ~240 dpi               0.67
xhdpi        ~320 dpi               0.5



dpi:每英寸像素数(密度*160)
density:密度

手机像素密度(density)实际上是以单位英寸160个像素作为参考标准,主要密度有0.75,1,1.5和2,当密度为2时就表示1英寸有320个像素,Android中通过代码可以获取到屏幕的像素值和密度,根据这些值就可以反向算出屏幕的物理尺寸


屏幕尺寸=屏幕对角线的像素值/(密度*160)=  [(长的平方+宽的平方)开根号] / (密度*160) 


实践过程:

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

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)
       double diagonalPixels = Math.sqrt(Math.pow(width, 2)+Math.pow(height, 2)) ;
double screenSize = diagonalPixels/(160*density) ;

有可能上面的计算屏幕的尺寸不是太准确
  • 大小: 162 KB
  • 大小: 31.6 KB
  • 大小: 30.4 KB
  • 大小: 27.1 KB
分享到:
评论

相关推荐

    android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法

    Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机是3.7英寸 Aspect Ratio(宽高比率) 指的是实际的物理尺寸宽高比率,分为long和nolong ...

    android 万能适配

    - dp(density-independent pixels)是推荐的尺寸单位,它与设备的物理像素密度无关,有助于跨设备的尺寸一致性。 - sp(scale-independent pixels)用于字体大小,它同时考虑了用户的字体缩放偏好。 6. **设计...

    android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip

    在Android应用开发中,适配不同的设备分辨率是一项重要的任务,因为Android设备的屏幕尺寸和像素密度千差万别。这个项目源码主要涉及到如何进行多分辨率适配,以及如何判断设备是平板还是手机,以及如何实现图片的等...

    移动端手机和平板适配解决方案

    在移动端开发领域,适配问题是一项至关重要的任务,特别是在手机和平板设备上,由于屏幕尺寸、分辨率和像素密度的多样性,使得开发者需要采用特定的策略来确保应用或网站在不同设备上都能提供良好的用户体验。...

    联想乐pad专员笔试

    4. 乐Pad S1的屏幕尺寸为XX英寸,分辨率为XX*XX,同时拥有XX的长宽比,提供了广阔的视野和出色的显示效果。 5. 乐Pad的3G版支持双模三网兼容,包括WCDMA和CDMA两种3G网络,还有一个是GSM网络,确保在不同网络环境下...

    android开发教程之判断是手机还是平板的方法

    接下来,我们可以计算屏幕的宽度和高度,以及像素密度,从而得出屏幕的英寸尺寸。以下代码展示了如何实现这个过程: ```java private boolean isPad() { WindowManager wm = (WindowManager) getSystemService...

    andriod_UI_秘笈

    尽量避免使用像素(px)单位,转而使用密度无关像素(dp)或可缩放像素(sp)来确保文字和图形在不同密度屏幕上适配。同时,字体大小要适中,易于阅读。 在“设计哲学和考量”方面,追求简洁而不失功能性,强调内容而非...

    分享Android平板电脑上开发应用程序不能全屏显示的问题解决

    在Android平台上进行应用开发时,有时会遇到应用程序无法在平板电脑上全屏显示的问题,这通常是由于设备的屏幕尺寸适配不当或者系统默认设置导致的。本文将详细讲解如何解决这个问题,以及提供相关的代码示例。 ...

    android设计中的注意点

    设计时需考虑多种因素,如屏幕尺寸、密度、方向、输入方式(触摸或物理按键)、软键盘与物理键盘的使用,以及不同设备间的差异。查阅兼容性设计文档(CDD)以了解设备间的差异,并合理利用资源修饰符适应不同环境。9-...

    Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)

    我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就分享一下Android中常用的一些辅助方法: 获取屏幕高度: /** * 获得屏幕高度 * @param context * @return * by Hankkin...

    Android 系统UI设计规则.doc

    - **禁用px单位**:使用dp(密度无关像素)或sp(可缩放像素)来确保跨不同密度屏幕的适配。 - **避免固定布局**:使用相对或约束布局等动态布局方式,以适应不同屏幕尺寸。 - **避免过小的字体**:确保文本清晰可读...

    Android优化UI设计原则

    8. **了解屏幕尺寸和密度分类。** 根据Android提供的尺寸和密度分类指南来设计适应不同设备的界面。 综上所述,遵循这些原则和准则可以帮助开发者创建出既美观又实用的应用程序界面,提高用户体验的同时也增加了...

    androidUI设计秘籍

    3. **避免绝对定位**:使用相对或约束布局等灵活的布局方式,以适应不同屏幕尺寸。 4. **正确使用单位**:尺寸单位应使用dp,文本大小使用sp,以确保不同密度屏幕上的适配。 5. **确保字体大小适中**:过小的字体不...

    外媒评2021年最佳Android平板排名.docx

    - Nexus 7以其7英寸1080P分辨率的屏幕和323ppi的像素密度,提供了卓越的显示效果,同时还配备了真正的立体声扬声器,提升音质体验。配备1.5GHz的高通Snapdragon S4 Pro四核处理器和2GB RAM,保证了流畅的游戏和应用...

    Android_UI_设计秘笈

    理解不同设备间的差异,参考设备差异化文档(CDD),并了解屏幕尺寸和密度分类。合理使用资源修饰符,如locale、dpi和orientation,以适应不同设备和场景。 《Android UI设计秘笈》Part II进一步详细介绍了UI框架...

Global site tag (gtag.js) - Google Analytics