此链接    http://blog.csdn.net/xiaodongrush/article/details/29560431

1. 要开发一款Android APP,设计师和开发要约定哪些事情?

首先,选择一款主流机型。

然后,设计师依据该机型的屏幕尺寸设计效果图,给出px单位的标注。

    最后。开发依据该机型,能够算出px与dp的换算方法。依据px单位的标注,设置为dp为单位的标注。

    备注:1dp=1dip=1sp,对于一般长宽dp或者dip都能够,sp是字体专用单位。在操作系统中设置大中小号字体后。能够改变sp的显示大小。

这样做能够保证在这款机型上,设计师的设计全然表现。对于其它机型。仅仅要尺寸相差不是非常大。显示效果相差不会太大。

假设是在手机上设计,在pad上显示。相差就会比較大了。

2. 举例说明

如果选择GalaxyNexus作为开发的目标机型。

    该机型的屏幕尺寸是720x1280。设计师在720x1280的画布上进行设计。

    依据计算公式。得知Galaxy Nexus上面,1dip=1dp=1sp=2px。

所以对于40px的标注,开发须要给出20dip设置就可以。

换算代码例如以下。參考自http://www.imyukin.com/?

p=277

public static int dip2px(Context context, float dipValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(pxValue / scale + 0.5f);
}

3. 没办法保证不同设备之间的全然适配

http://su1216.iteye.com/blog/1569029,这篇讲的不错,仅仅有当手机A的屏幕密度/手机B的屏幕密度=手机A的屏幕宽度/手机B的屏幕宽度的时候,A手机上设置的dip。sp。dp单位到了B手机上,才干实现等比缩放。这个条件太苛刻了,所以不可能有全然的适配。

4. 不能做到全然适配。还能做些什么

既然绝对长度在不同手机之间不能全然适配。那么就降低使用绝对长度的机会。

    比方:一行仅仅有一个非常长的button。就不要用设置button的长度。由于不同手机上,button长度显示出不一样,有的手机上显示正常,在其它手机上可能就会显得距离屏幕两边非常近,甚至超出屏幕。

最好是设置button为match_parent,设置左右边距。这样不同手机上。边距都是一样的。

5. UI适配其它方面的事情

    本文主要是说一下标注转化的实际中怎么用的问题,UI适配还有非常多地方要注意。比方:组件背景中经常使用9-patch,线性布局与相对布局。多种密度图片drawable-hdpi、drawable-ldpi和drawable-mdpi等。

9-patch图片就是注意左边和下边的黑线控制缩放区域,右边和上边的黑线控制内容区域。非常多人easy忽视内容区域。

相对布局的使用方法还是比較多的,这里不展开了。多种分辨率图片。一般没条件切那么多图的话,给drawable-hdpi它是足够。准备几个测试手机。看的更重要的影响。

版权声明:本文博主原创文章,博客,未经同意不得转载。

设计师给了px显着的单位,Android要设置多少开发商dip、dp、sp?的更多相关文章

  1. 关于android setTextSize() 以及 px dip/dp sp的说明。。。。

    Paint.setTextSize()单位为px,Android系统中,默认的单位是像素(px).也就是说,在没有明确说明的情况下,所有的大小设置都是以像素为单位.Paint.setTextSize传 ...

  2. px,dp,sp以及像素密度

    px px(pixel): 像素,是指在由一个数字序列表示的图像中的一个最小单位.在Android中,无论屏幕密度多少,一个像素单位对应一个屏幕像素单位,不会根据屏幕密度自动缩放,因此一般不推荐使用p ...

  3. 显示单位px和dip以及sp的区别

    显示单位px和dip以及sp的区别(转) dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVG ...

  4. 【转】Android中dip(dp)与px之间单位转换

    Android中dip(dp)与px之间单位转换 dp这个单位可能对web开发的人比较陌生,因为一般都是使用px(像素)但是,现在在开始android应用和游戏后,基本上都转换成用dp作用为单位了,因 ...

  5. px em rem %作为单位使用

    博客地址 :https://www.cnblogs.com/sandraryan/ px 我们都很熟悉啦,但是固定大小无法适配各种屏幕. rem是CSS3新增的一个相对单位(root em,根em), ...

  6. Android - 开发页面需了解的dip,sp,px知识,以及它们的转换

    工作中,时常会有任务要求开发新页面,这时一般的流程是产品经理确定要开发的页面和功能,然后设计师提供设计稿,之后由我们开发人员完成开发工作. 通常,设计师提供的设计稿尺寸标注会很详细,例如涉及到字时,字 ...

  7. px 与 dp, sp换算公式?

    PPI = Pixels per inch,每英寸上的像素数,即 "像素密度" xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (baseline) ldpi: 0. ...

  8. Android的px、dip、sp的区别

    Android的px.dip.sp的区别 我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼. 在Android中支持的描述大小区域的类型有以下几种:   px(pix ...

  9. DPI/PPI/dp/sp/px/pt 移动设计手册

    转自DPI/PPI/dp/sp/px/pt 移动设计手册 做移动设计的同学,不管是原生app或者web app,应该对字体字号都是很头痛的问题.根本原因是,我们用唯一分辨率的电脑,设计各个不同尺寸大小 ...

随机推荐

  1. 8张图理解Java(转)

    一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做 ...

  2. Spring MVC的异步模式

    高性能的关键:Spring MVC的异步模式   我承认有些标题党了,不过话说这样其实也没错,关于“异步”处理的文章已经不少,代码例子也能找到很多,但我还是打算发表这篇我写了好长一段时间,却一直没发表 ...

  3. 应用层open(read、write、close)怎样调用驱动open(read、write、close)函数的?

    应用层open(read.write.close)怎样调用驱动open(read.write.close)函数的? 华清远见2014-09-29   北京海淀区 张俊浩 三大数据结构关系图

  4. hdu5179(数位dp)

    传送门:beautiful number 题意:令 A=∑ni=1ai?10n?i(1≤ai≤9)(n为A的位数).若A为“漂亮的数”当且仅当对于任意1≤i<n满足a[i]≥a[i+1]且对于任 ...

  5. oracle instr函数

    语法:instr( fatherstr, sonstr [, start_position [, matchtimes ] ] ) fatherstr:父字符串.要在此字符串中查找子字符串的位置. s ...

  6. Android开发系列(二十二):AdapterViewFlipper的功能和使用方法

    AdapterViewFlipper继承了AdapterViewAnimator,它会显示一个View组件,能够通过showPrevious()和showNext()方法控制组件显示上一个.下一个组件 ...

  7. cocos2d-x博客网站推荐和牛逼的教程

    Cocos2d-x网站列表 CocoaChina(官方网站,不解释)www.cocoachina.com/ 泰然网(貌似最近有很多不错的文章,不过早期的文章质量一般)www.ityran.com/ C ...

  8. Python眼睛护士改进版

    添加了设定从(0,0)显示:self.root.geometry('1000x200+0+0')其实主要是两个0.那个1000和200是没用的,因为已经设定了minsize. 添加了窗口置顶:self ...

  9. JS兼容的方式来获取浏览器的宽度

    <script type="text/javascript"> //need to wait until onload so body is available win ...

  10. 浅析JAVA设计模式之工厂模式(一)

    1 工厂模式简单介绍 工厂模式的定义:简单地说,用来实例化对象,取代new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式能够动态决定将哪一个类实例化.不用先知道每次要实例化哪一个类. 工 ...