`

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系统如何处理不同分辨率的显示,并提供有效的适配策略。 一、Android屏幕分类 Android...

    Android-选择分辨率并自动生成对应的dimen.xml文件

    在Android开发过程中,适配不同分辨率的设备是一项重要的任务,因为Android设备的屏幕尺寸和像素密度千差万别。本文将深入探讨如何选择分辨率并自动生成对应的`dimen.xml`文件,以实现更加灵活和高效的资源适配。 `...

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

    "Android字体大小自适应不同分辨率的解决办法" Android字体大小自适应不同分辨率的解决办法是指在不同的Android设备上,根据屏幕分辨率和尺寸变化,自动调整字体大小的技术。这个解决办法是通过使用Android的资源...

    android 屏幕分辨率问题

    在Android开发中,屏幕分辨率问题是不可忽视的关键因素,因为Android设备具有广泛的屏幕尺寸和像素密度。适配不同的屏幕是确保应用程序用户体验一致性的基础。本文将深入探讨Android屏幕适配技术,包括屏幕分辨率...

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

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

    基于Android的OpenCV图片中值模糊处理的实现

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...

    使用CSS3-Media-Query技术适配Android平板屏幕分辨率和屏幕密度.docx

    在移动应用开发中,适配各种Android平板设备的分辨率和屏幕密度是一个棘手的问题。使用CSS3 Media Query技术可以轻松解决这个问题。Media Query是一种基于屏幕尺寸、屏幕密度、方向等条件来应用不同的CSS样式的技术...

    android分辨率适配文件生成

    "android分辨率适配文件生成"这个话题就是针对这个问题提出的一种解决方案。Android系统支持多种屏幕尺寸和分辨率,包括小屏、中屏、大屏以及超大屏,对应的像素密度有ldpi(低密度)、mdpi(中密度)、hdpi(高密度...

    修改手机软件分辨率、修改QQ分辨率等

    在这种情况下,"修改手机软件分辨率"和"修改QQ分辨率"成为了解决问题的关键。以下是一些关于这个主题的详细知识点: 1. **分辨率理解**: 分辨率是指屏幕上像素的数量,通常以宽度和高度的像素数表示,如1920x1080...

    android分辨率完美适应

    ### Android分辨率完美适应详解 在Android应用开发过程中,面对各种屏幕尺寸和分辨率的设备,确保应用界面能够完美适配每一种设备,是一项重要的任务。本文将深入探讨Android应用如何实现分辨率的完美适应,涵盖...

    各个分辨率的res资源文件

    Android系统为不同分辨率的设备提供了丰富的兼容性,以便应用能在各种尺寸的屏幕上正确显示。这主要通过使用`res`资源目录下的不同`values`文件夹来实现,其中包含了针对不同分辨率的`dimens.xml`文件。下面我们将...

    android分辨率问题

    在Android平台上,分辨率问题是一个关键的设计和开发考虑因素,因为它涉及到UI元素在不同尺寸和密度屏幕上的呈现。Android系统为了适应各种设备,采用了一种灵活的屏幕适配策略。 首先,我们来理解Android屏幕适配...

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

    本资源包含的"android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip"是一个源码示例,旨在帮助开发者解决这些问题。 首先,我们要了解Android设备的屏幕尺寸和像素密度差异。Android系统将屏幕分为小...

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

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

    分辨率的解决办法

    随着移动设备的多样化发展,Android应用面临着各种不同屏幕尺寸与分辨率的支持问题。为了确保应用在各种设备上都能提供良好的用户体验,开发者需要采取一定的策略来实现应用对多分辨率的自适应。 #### 一、资源文件...

    让AndroidX86竖屏显示

    这里的`480x800x16`和`320x480x16`分别代表两种标准的Android竖屏分辨率。其中,“480x800”代表屏幕的宽度和高度,而“16”则表示颜色深度。 ##### 步骤4:修改启动项 接下来,需要修改AndroidX88的启动配置,使其...

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

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

    Android编程实现屏幕自适应方向尺寸与分辨率的方法

    针对不同分辨率的设备,Android提供了资源目录结构,如`res/drawable-mdpi`、`res/drawable-hdpi`和`res/drawable-ldpi`,分别存储不同密度的图片资源。系统会自动选择与设备相匹配的图片,以确保显示质量。同时,也...

    android屏幕适配,自动生成不同的dimens.xml详解

    总的来说,通过自动生成和管理多个`dimens.xml`文件,开发者能够有效地处理Android平台上的屏幕适配问题,确保应用在不同设备上呈现一致的用户体验。这个方法不仅适用于尺寸,还可以扩展到颜色、字符串等其他资源的...

Global site tag (gtag.js) - Google Analytics