此链接    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. [Android学习笔记]jackson库的使用

    Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是: 1. Java Object -> Json String 2. Java Object -> Xml String ...

  2. Ubuntu下实现双屏独立切换

    在编码时,总觉得屏幕大小不够,要是能多个屏多好,可以这样 把你的显示器连接到你的电脑,然后开启一个终端 输入:xrandr 显示如下: LVDS1 connected 1366x768+1024+0 ...

  3. POJ2828 Buy Tickets 【线段树】+【单点更新】+【逆序】

    Buy Tickets Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 12296   Accepted: 6071 Desc ...

  4. Android Studio Gradle 添加.so 支持文件

    近期发展Android Wear 关注商品.官员Demo所有gradle 工程. 当然,我也用eclipse配置一个可行的环境. 问题来了,eclipse,android studio 开发 andr ...

  5. Invalid embedded descriptor for ".proto".Dependencies passed (Protobufer)解决办法

    前言 之前开发的时候,发现居然出现了Dependencies passed to FileDescriptor.buildFrom() don't match those listed in the ...

  6. hdu1428之spfa+dfs

    漫步校园 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  7. SpringMVC与Mybatis框架整合遇到的坑(转)

    最近在做springmvc与mybatis的项目,遇到一些比较坑的问题.花了许多时间却发现其实解决的办法很简单.这里主要是讲我自己在整合这两个框架的时候遇到的一些问题做一个整理.希望遇到和我同样问题的 ...

  8. Python使用MySQLdb操作MySQL

    import MySQLdb,sys try: conn=MySQLdb.connect(host=,user=',db='db1') except Exception,e: print e sys. ...

  9. SWT中在treeview中显示图片

    package com.repositoryclient.treeview; import org.eclipse.jface.resource.ImageDescriptor; import org ...

  10. 数学之路-python计算实战(19)-机器视觉-卷积滤波

    filter2D Convolves an image with the kernel. C++: void filter2D(InputArray src, OutputArray dst, int ...