`

Android如何应对不同分辨率手机匹配问题

阅读更多

                          我们在编写app时,总是用自己的手机调试我们的app,于是出来的效果就是我们手机好就是好,根本不管运行到人家手机是怎么样的,于是当自己得意洋洋下载到人家手机看效果时就傻眼了,what the  fuck,这个又丑又长的的app界面设计简直不忍直视好嘛,请专业点好吗,这里虽然是安卓初步,养成良好的界面设计规范是非常重要的,现在我来普及几个常识。

 

 

按像素密度分类的类别有 LDPIMDPIHDPI  XHDPI

48 dp 的设计韵律

一般来说,可触摸控件以 48 dp 为基础单位。

为什么是 48 dp?

一般情况下,48 dp 在设备上的物理大小是 9 mm (会有一些变化)。这刚好在触摸控件推荐的大小范围 (7-10 mm) 内,而且这样的大小,用户用手指触摸起来也比较准确、容易。

如果你设计的元素都至少有 48 dp 的高度和宽度,那么可以保证:

  • 你设计的元素在任何屏幕上显示时,都不会小于最低推荐值 7 mm。
  • 你可以在信息密度和界面元素的可操控性之间得到较好的平衡。

具体可以看下一下博客内容,转载自:http://blog.sina.com.cn/s/blog_6499f8f101014ipq.html

一个优秀的手机软件,不仅要有精巧的功能,流畅的速度,让人赏心悦目的UI也往往是用户选择的重要理由。作为移动产品的PM,也需要了解一些在UI设计中的基本知识。

 

1. pxpt,一对好伙伴

在视觉设计中,我们经常会见到以下两个单位: px和磅数pt

P,是英文单词pixel的缩写,意为像素。在设计领域中,像素是用来计算数码影像的一种单位。计算机中显示的图像并非连续的线条组成,而是由许多肉眼看不见的小点组成。如果把把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小点所组成,这些小点就是构成影像的最小单位“像素”。由于是最小的独立显示单位,px均为整数,不会出现0.5px的情况。

 

图一 看这个色彩鲜艳的LED灯(原图大小)




 

图二 你能想象这才是他的本来面目吗?(放大之后)

 

 

 

Pt,则是point的缩写,一般音译为磅数,也有人直译为点数,请大家自行转换。这是使用在印刷领域的单位,一磅等于1/72英寸。在国际上一般会用pt作为字体的单位。

一般情况下,设计师们采用px来进行标注设计图中的图形,用pt来标注文字。在过去很多年的视觉设计中,pxpt的配合堪称天衣无缝,把PC打扮得花枝招展,堪称史上最佳配合的好伙伴。

 

2. 那些年,我们一起追过的Android

在突如其来的移动互联网时代,pxpt的配合变得不那么和谐。原因就在于Android携众高矮不一,胖瘦各异的爱妃来到世人面前,给他们化妆就变成横看成岭侧成峰,远近高低各不同了。

由于GoogleAndroid的开放政策,使得所有厂商都可以加入到智能手机的研发中来。于是乎,Android手机一时间百花齐放,出现了各种不同的手机样式。比如:

 

表一 Android分辨率规格(宽*高):

240*320 320*240 320*480 480*800 480*854 640*960 720*1280,……还有平板

分辨率

比率

市场对应手机

320×480

2:3

三星S5830 Galaxy Ace、三星 I5700、三星I7500、华为U8500

索尼爱立信X8 (E15i) 、华为 C8600、Motorola XT502 

Motorola ME600、Motorola CLIQ、Motorola ME501

LG P503、LG GT540、LG GW620、LG P500

HTC G6 Legend、HTC Aria (G9)、酷派 D530、酷派 W711

夏普 SH8118U、天语 W606 、中兴 R750、首派 A60

240x320

3:4

HTC A3366 Wildfire、HTC A3380 、HTC A3360

Motorola ME511 、Motorola XT301 、Motoroal XT300

华为 C8500、三星 I5508、中兴 X850、索尼爱立信 U201、SAMSUNG S5570、

480x800

3:5

HTC Desire (G7)、HTC A9191 、HTC 双擎T9199

HTC A9191、HTC Desire HD (G10) 、HTC Desire Z

HTC Incredible S (S710e)、 HTC EVO 4G、三星 I9003

三星 I9010、三星 I9088、三星 I909、三星 I9088、三星I9000

三星I909 (SPhone)、三星I9020、三星T959、三星W899

酷派N930、Google Nexus S、、酷派 N930、戴尔Venue

联想W101 乐phone (1.6系统非原生)、中兴 V9E、中兴 V880

联想W100乐phone(1.6)、联想C101、夏普 SH8128 、

夏普 SH7218U(新机)、Motorola A1680、华为 U8800

戴尔Mini5 (Streak) 、Google Nexus One (G5)

600x1024

75:128

三星 Galaxy P1000

480x854

 

Motorola XT702、Motorola XT711

Motorola ME722 (里程碑2)、Motorola XT800

Motorola ME811 (Droid X)、Motorola ME525

Motorola XT800+ 、Motorola XT806Ix

索尼爱立信 X10i

 

图三 Android屏幕物理尺寸规格

屏幕物理尺寸3.23.53.754.04.35.079.310.1



  

为了更好的描述这种多样化引发的问题,我们需要引入一个新的概念density,也就是密度。它指的是在一定尺寸的物理屏幕上显示像素的数量,一般使用dpi(dots per inch,每英寸像素数)作为单位。比如一台分辨率为240x320,屏幕物理尺寸为1.5英寸x2英寸的手机,他的密度可以用分辨率/尺寸,240/1.5或者320/2,密度为160dpi。对于用户来说,密度越大的屏幕显示效果越精细,因为每英寸显示的像素数量更多。

如果是要使用pxpt给程序贴图,假设生成了一条240px的直线,在240*320的屏幕上刚好可以铺满,而放到480x800的分辨率下才刚刚到一半的位置。

如果要解决这样的问题,那么程序在实现的时候就必须为每个分辨率都写一个配置,否则就会出现图形在低密度的屏幕上显示的更大,而在高密度的屏幕上显示的更小。最麻烦的事情在于,一旦出现新的分辨率,所有程序都没办法直接运行了。这明显不符合手机快速发展的客观规律。

 

3. 新的搭档,dpsp

为了解决这个问题,GoogleAndroid引入了一套新的单位dpsp

首先登场的是dpDensity Independent Pixel,可以翻译为密度无关像素。和px相比,dp在不同密度的屏幕中实际显示比例将保持一致。根据规定,一个dp相当于160dpi屏幕中的一个px。在320dpi的屏幕中,一个dp<span style="line-height: 21px; font-family: 宋体; word-break: no

分享到:
评论

相关推荐

    Android字体大小自适应不同分辨率的解决办法

    主要介绍了Android字体大小自适应不同分辨率的解决办法的相关资料,需要的朋友可以参考下

    Android真机界面的大小与MuMu模拟器运行出来的手机屏幕大小不一致问题的一个解决办法

    –这一切看起来似乎很正常的样子,但是在android studio的布局文件的布局情况只能与模拟器运行效果、真机界面运行效果这两种效果中的一个相匹配。说白了布局文件在模拟器上运行出满意的效果,但运行到真机界面上的...

    Android游戏源码自适应分辨率的双人对战五子棋.zip

    本游戏和之前发的那个五子棋在实现的功能上差不多,同样是3个java文件实现所有功能,但是这个在一些细节的处理上做的要比上一个五子棋游戏源码要好一些了,比如在分辨率的适配上,不过本项目比上一个项目注释量要少...

    安卓壁纸androidesk v4.3 For Android.zip

    自适应匹配各种分辨率手机屏幕。 快速方便的找到你喜欢的图片壁纸。 便捷的一键切换、自动切换和本地壁纸管理功能。 登录后任意收藏、下载壁纸,不同手机轻松玩转。 安卓壁纸软件升级: 1、【升级】锁屏稳定性大...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...

    Android dimens自动生成工具(人工智能的全局自适应)

    人工智能的全局自适应,且布局代码完全可视化,Android默认的dimens name 以名称为链接,根本无法达到可视化,很浪费编程精力,本方法以数字为名称,布局文件及控件宽、高完全可视化,且可达到精确自适应所有屏幕,...

    juse4android:从 code.google.compjuse4android 自动导出

    适用于 Android 的 J-USE (用于生成 Android BIS 应用程序的模型驱动工具) 该项目是在葡萄牙... 我们的模型驱动生成方法支持灵活的 Android GUI 的生产,适用于不同显示器的尺寸、方向和分辨率。 代码生成器 生

    HelloAndroid:XML中的简单布局

    该应用程序在android中实现了绘制XML布局的基础。 属性如下:- 根布局是LinearLayout,并且方向已设置为... layout_width已设置为match_parent以匹配不同设备的宽度。 应用在分辨率为1080x1920的设备上看起来像这样

    Android开发人员不得不收集的代码

    获取手机分辨率 getDeviceWidth、getDeviceHeight 设置透明状态栏(api大于19方可使用) setTransparentStatusBar 隐藏状态栏(注释萌萌哒) hideStatusBar 获取状态栏高度 getStatusBarHeight 判断状态栏是否存在 ...

    flutter_boost:FlutterBoost是一个Flutter插件,可以以最少的工作量将Flutter混合集成到您现有的本机应用程序中

    FlutterBoost会为您解决页面分辨率问题。 您唯一需要关心的是页面名称(通常可以是URL)。先决条件您需要先将Flutter添加到项目中,然后才能继续。flutter SDK的版本需要与boost的版本匹配,否则会编译错误。提升...

    lunch_cb5801_r58_20160907.7z

    显示:HDMI输出1080p分辨率的LCD显示器。 编译R18的时候,看lichee和android选择的是不一样的选项。 初步判断:在android中执行extract-bsp的时候,只是去上一级目录中查找lichee编译生成的内核。 先依葫芦画瓢,...

    lunch_r58_20160906.7z

    显示:HDMI输出1080p分辨率的LCD显示器。 编译R18的时候,看lichee和android选择的是不一样的选项。 初步判断:在android中执行extract-bsp的时候,只是去上一级目录中查找lichee编译生成的内核。 先依葫芦画瓢,...

    cute girl anime wallpaper:免费可爱的女孩动漫壁纸android app apk-开源

    最佳分辨率高清,全高清,甚至 4K 日本,卡哇伊,韩国女孩动漫与您的背景主题相匹配。 在Google Play商店中可用https://play.google.com/store/apps/details?id=com.cutegirl.animewallpaper免责声明:该应用是由...

    redbttn-seoul-studio:홈페이지

    需要实时视频流技术来匹配自视频工作室的概念 AWS CloudFront用于同时流式传输到多个连接器 视频JS Instagram网格样式 实时同步的Instagram feed布局 针对移动设备(Android和iOS)和网络进行了优化 适用于具有多种...

    glassrtc:谷歌眼镜上的实时时钟

    关于编解码器 - TI OMAP CPU 的编解码器(第 3 页( ),左下角)与 webRTC 的 VP8 不匹配......(但如果它们确实匹配,android 会自动处理加速)。 虽然 OMAP 4 公告仍然为玻璃优化 / VP8 带来希望 - “......拥有...

    CyberLink PowerDVD11.0.1919.51简体中文版

    选择此选项可提高原视频的分辨率,使图像更加清晰,并消除失真现象。TrueTheater HD 可以将 480p 视频提高至 1080p。使用滑块调节锐度,达到与配置相匹配的最佳输出效果。 TrueTheater Lighting (CyberLink Eagle ...

Global site tag (gtag.js) - Google Analytics