Android如何应对不同分辨率手机匹配问题
我们在编写app时,总是用自己的手机调试我们的app,于是出来的效果就是我们手机好就是好,根本不管运行到人家手机是怎么样的,于是当自己得意洋洋下载到人家手机看效果时就傻眼了,what the fuck,这个又丑又长的的app界面设计简直不忍直视好嘛,请专业点好吗,这里虽然是安卓初步,养成良好的界面设计规范是非常重要的,现在我来普及几个常识。
按像素密度分类的类别有 LDPI、MDPI、HDPI 和 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. px和pt,一对好伙伴
在视觉设计中,我们经常会见到以下两个单位: px和磅数pt。
Px ,是英文单词pixel的缩写,意为像素。在设计领域中,像素是用来计算数码影像的一种单位。计算机中显示的图像并非连续的线条组成,而是由许多肉眼看不见的小点组成。如果把把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小点所组成,这些小点就是构成影像的最小单位“像素”。由于是最小的独立显示单位,px均为整数,不会出现0.5px的情况。
图一 看这个色彩鲜艳的LED灯(原图大小)
图二 你能想象这才是他的本来面目吗?(放大之后)
Pt,则是point的缩写,一般音译为磅数,也有人直译为点数,请大家自行转换。这是使用在印刷领域的单位,一磅等于1/72英寸。在国际上一般会用pt作为字体的单位。
一般情况下,设计师们采用px来进行标注设计图中的图形,用pt来标注文字。在过去很多年的视觉设计中,px和pt的配合堪称天衣无缝,把PC打扮得花枝招展,堪称史上最佳配合的好伙伴。
2. 那些年,我们一起追过的Android
在突如其来的移动互联网时代,px和pt的配合变得不那么和谐。原因就在于Android携众高矮不一,胖瘦各异的爱妃来到世人面前,给他们化妆就变成横看成岭侧成峰,远近高低各不同了。
由于Google对Android的开放政策,使得所有厂商都可以加入到智能手机的研发中来。于是乎,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.2、3.5、3.75、4.0、4.3、5.0、7、9.3、10.1
为了更好的描述这种多样化引发的问题,我们需要引入一个新的概念density,也就是密度。它指的是在一定尺寸的物理屏幕上显示像素的数量,一般使用dpi(dots per inch,每英寸像素数)作为单位。比如一台分辨率为240x320,屏幕物理尺寸为1.5英寸x2英寸的手机,他的密度可以用分辨率/尺寸,240/1.5或者320/2,密度为160dpi。对于用户来说,密度越大的屏幕显示效果越精细,因为每英寸显示的像素数量更多。
如果是要使用px和pt给程序贴图,假设生成了一条240px的直线,在240*320的屏幕上刚好可以铺满,而放到480x800的分辨率下才刚刚到一半的位置。
如果要解决这样的问题,那么程序在实现的时候就必须为每个分辨率都写一个配置,否则就会出现图形在低密度的屏幕上显示的更大,而在高密度的屏幕上显示的更小。最麻烦的事情在于,一旦出现新的分辨率,所有程序都没办法直接运行了。这明显不符合手机快速发展的客观规律。
3. 新的搭档,dp和sp
为了解决这个问题,Google为Android引入了一套新的单位dp和sp。
首先登场的是dp,Density Independent Pixel,可以翻译为密度无关像素。和px相比,dp在不同密度的屏幕中实际显示比例将保持一致。根据规定,一个dp相当于160dpi屏幕中的一个px。在320dpi的屏幕中,一个dp<span style="line-height: 21px; font-family: 宋体; word-break: no
Android如何应对不同分辨率手机匹配问题相关推荐
- 最明白的Unity3D手机平台分辨率自动匹配教程-适合新手
在网上搜了好多资料关于如何自适应各种繁杂平台的手机屏幕分辨率,找到了一个关键词UIRoot,于是乎去下载了NGUI插件,这是一个Unity3D上开发2D游戏最好的插件了. 教程环境:Unity4.5. ...
- Android 系统(156)----Android APP适配全面屏手机的技术要点
为了更好的阅读体验,可以转到我的个人站点:Windy'Journal 目录 目录 关于全面屏 更大的屏幕高宽比例 在AndroidManifest.xml声明max_aspect值 更换部分被拉伸的图 ...
- 京东/淘宝的手机销售榜(前4名 -- 手机品牌 --手机型号*3 --手机分辨率 -- 手机操作系统 --安卓版本号)
手机品牌 手机型号 手机分辨率 手机操作系统 版本 Android 小米 Redmi 10X 2400×1080 MIUI 12 Android 10 10至尊纪念版 2340 x 10 ...
- 京东/淘宝的手机销售榜(前4名 -- 手机品牌 --手机型号*3 --手机分辨率 -- 手机操作系统 --安卓版本号)...
此文转载自:https://blog.csdn.net/DAYTOYdxz/article/details/110237692 手机品牌 手机型号 手机分辨率 手机操作系统 版本 Android ...
- android9默认字体下载,iFont爱字体 v5.5.9 Android特别版-实用的手机换字体软件
iFont爱字体 v5.5.9 Android特别版-实用的手机换字体软件 书法字体2015.09.28iFont iFont(爱字体)是安卓平台最强大.最专业的字体软件,精彩字体,随你所换!iFon ...
- IOS开发中@2x图片等适应不同分辨率手机
开发中,例如: Love.image=[UIImage imageNamed:@"index_pic.png"]; 在项目中还保存有index_pic@2x.png的图片,此图为了 ...
- Android APP适配全面屏手机的技术要点-转载
Android APP适配全面屏手机的技术要点 Windy_816 关注 2018.02.07 21:27* 字数 4010 阅读 5440评论 7喜欢 23 转载-来源 :https://www. ...
- Android APP适配全面屏手机的技术要点
为了更好的阅读体验,可以转到我的个人站点:Windy'Journal 欢迎关注个人技术号:Android葵花宝典 获取最新的Android高级进阶知识点,以及Android逆向方法. 关于全面屏 全面 ...
- 2022-07-16 Android app获取屏幕分辨率
一.获取屏幕分辨率代码 DisplayMetrics dm = getResources().getDisplayMetrics();int screenWidth = dm.widthPixels; ...
- android 将byte[]保存到手机
今天,讲讲如何把程序的byte[]保存到手机,并且作为文件可以读取. package com.example.edittextresearch;import java.io.BufferedOutpu ...
最新文章
- C#计时器,记录程序运行时长
- 清华大学计算机系教授:马少平——计算机是如何实现智能的(附直播回放)...
- BootStrap-select插件动态添加option无法显示
- 站立会议05(第二次冲刺)
- 应用开发框架之——业务规则脚本化
- python编程入门视频推荐_Python编程入门2021攻略,书籍推荐,视频推荐,每天更新...
- SQL在SQL Server中相交使用
- 职称计算机 宜兴,关于报送2020年经济、石油化工工程、 电子信息工程和工艺美术高级专业技术资格评审材料的通知...
- 浪潮服务器可管理和维护性,专注用户需求,浪潮服务器提供优质高效的产品
- 电大计算机网考辅导,【电大复习资料小抄】2016年12月份电大统考计算机考前辅导电子表格 电大考试必备小抄.doc...
- java nio为什么是非阻塞_Java nio都是非阻塞IO么?并非如此
- 【数据标准】数据指标体系建立
- 一文读懂Hoo Smart Chain的可视化公链
- mtu设置失败_华为路由器修改MTU值失败怎么办
- 基于用户的产品分析之Cohort Analysis(群组分析,留存分析)
- Python+selenium+360浏览器实现自动测试
- 康耐视3D-DSMax图像采集详细操作流程
- thinkphp6 lib短信宝短信验证码封装
- Linux磁盘管理和文件系统(相思相见知何日?此时此夜难为情)
- 微信分享 传递数据 接收收据
热门文章
- 阿里巴巴初创时的十八罗汉,离开阿里之后都有什么故事?
- 湖南省第1届职业技能大赛(经历、总结)
- 什么是MCU、MPU、DSP与FPGA
- 编码格式转换--常见编码间的转换以及中文简繁互换
- 奥克兰硕士计算机专业学费,新西兰八大研究生各专业学费汇总
- 看完这篇,轻松解决FastReport合并单元格!
- 5 款非常好用的AI在线图片处理工具
- C#人民币金额大写转换
- 【培训版】《最强大脑记忆力训练教程》[2017年7月份更新]
- Spring启动异常之ConflictingBeanDefinitionException: Annotation-specified bean name ‘XXXXXService‘