Android 的不同尺寸图片和布局(手机)

简介:

应对繁多的分辨率和尺寸。

图片的话,Android 是用 dpi 作为单位,你随便选择一个图片,在Win下面右键就会看到以dpi为单位的属性,dpi越高图片也就越精细。对于手机或显示设备来说,一个像素就是一个点,所以dpi=ppi,反过来,经常说的手机屏幕ppi高低数字等同于写程序时候考虑的dpi数值。

iPhone4的视网膜屏幕是326ppi,属于ldpi mdpi hdpi xhdpi的最后xhdpi(大约320ppi),后来的Android手机大抵也都这个数值,往上也没什么意义,反正你眼睛看不出来,处于能省尽量省的原则,图片都用xhdpi算了,低ppi的手机自个儿系统处理的了。

然后是布局,布局 4寸左右是normal,4寸到7寸是large(这些都是估算而已)。根据公式 px = dp * (dpi / 160)

和原则上 

  • large screens are at least 640dp x 480dp
  • normal screens are at least 470dp x 320dp

你计算下,normal的分辨率起码是宽 2*dpi,4.65寸,720p分辨率的galaxy nexus是315ppi,宽应该为起码 630,而720p的宽 720 正好符合。

再计算下 large,宽为3*dpi,连galaxy nexus都达不到要求。能达到要求的基本都是7寸+的平板。

所以手机来说,同一种高宽比的话你只要写normal的布局。

加上之前文章说的,分辨率有未来主流的16:9和当下主流的15:9 两种。

手机布局应该写2个,但是当下貌似没有办法(除非代码里判断)根据高宽比选择特定布局。

当然与其说是布局,还不如说是布局里面的图片的选择,用同一个图片资源,在2个不同的高宽比屏幕上有一定的差异,所以只能用到.9.png来处理。

Android 3 和 4 引入的新布局机制,比如 sw600dp,是给平板用的,跟手机木有关系。

结论就是:

res/layout/my_layout.xml            

res/drawable-xhdpi/my_icon.png      

16:9和15:9用.9.png来处理

Google 本意是想一个apk同时跑在手机和平板上,方便共用代码,但是我感觉明显同样的程序手机和平板的功能肯定会有不同的,大屏幕的可能性要比小屏幕大吧,而且各种界面布局+代码都有,放一个项目里反而感觉乱,还不如 iOS 那种平板的应用出个专门的 HD 版本。这种混合的策略很容易导致手机版本被装上平板,然后就碰到了难看变形的界面(我知道是可以声明针对特定屏幕,但是人家不一定会设置的,其中又牵扯到 Screen Compatibility Mode),这样的体验很糟糕的。

参考:http://developer.android.com/guide/practices/screens_support.html

相关文章
|
2月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
|
2月前
|
机器学习/深度学习 人工智能 Android开发
安卓智能手机操作系统演化史
【2月更文挑战第5天】 本文通过对安卓智能手机操作系统的演化历程进行探讨,分析了安卓系统从诞生至今的发展脉络和关键技术革新,从最初的版本到如今的最新版本,探讨了其在移动互联网时代的重要作用,以及未来可能的发展方向。
|
3月前
|
JavaScript Android开发
手机也能搭建个人博客?安卓Termux+Hexo搭建属于你自己的博客网站
手机也能搭建个人博客?安卓Termux+Hexo搭建属于你自己的博客网站
33 0
|
4月前
|
XML JSON Java
Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)
Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)
61 0
|
17天前
|
Android开发
Android保存图片到相册(适配android 10以下及以上)
Android保存图片到相册(适配android 10以下及以上)
19 1
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
47 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
1月前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
|
1月前
|
JavaScript Android开发
手机也能轻松搭建个人博客,使用安卓Termux+Hexo建立自己的网站
手机也能轻松搭建个人博客,使用安卓Termux+Hexo建立自己的网站
|
2月前
|
安全 Android开发
如何在Android手机上安装第三方应用?
【2月更文挑战第4天】在Android系统中,安装第三方应用是一个常见的需求。本文将介绍如何在Android手机上安装第三方应用,并提供详细的步骤和注意事项。
151 2
|
3月前
|
安全 网络协议 Linux
【公网远程手机Android服务器】安卓Termux搭建Web服务器
【公网远程手机Android服务器】安卓Termux搭建Web服务器
59 0