设计师给了px显着的单位,Android要设置多少开发商dip、dp、sp?
此链接 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/?
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为match_parent,设置左右边距。这样不同手机上。边距都是一样的。
5. UI适配其它方面的事情
本文主要是说一下标注转化的实际中怎么用的问题,UI适配还有非常多地方要注意。比方:组件背景中经常使用9-patch,线性布局与相对布局。多种密度图片drawable-hdpi、drawable-ldpi和drawable-mdpi等。
9-patch图片就是注意左边和下边的黑线控制缩放区域,右边和上边的黑线控制内容区域。非常多人easy忽视内容区域。
相对布局的使用方法还是比較多的,这里不展开了。多种分辨率图片。一般没条件切那么多图的话,给drawable-hdpi它是足够。准备几个测试手机。看的更重要的影响。
版权声明:本文博主原创文章,博客,未经同意不得转载。
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4904170.html,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android--ColorMatrix改变图片颜色
ColorMatrix 在Android中,图片是以一个个RGBA的像素点的形式加载到内存中的,所以如果需要改变图片的颜色,就需要针对这一个个像素点的RGBA的值进行修改,其实主要是RGB,A是透明度。在Android下,修改图片RGBA的值需要ColorMatrix类的支持,它定义了一个5*4的float[]类型的矩阵,矩阵中每一行表示RGBA中的一个参数。 一般常用指定ColorMatrix的RGBA值的方式有两种: 通过构造函数ColorMatrix(float[] src)直接得到i一个ColorMatrix对象,其中src参数为5*4的float[]类型的矩阵。 通过构造函数ColorMatrix()得到ColorMatrix对象,再通过set(float[] src)指定一个5*4的float[]类型的矩阵。 下面是定义了一个不修改的原图的RGBA的ColorMatrix。 1 ColorMatrix colorMatrix = new ColorMatrix(); 2 colorMatrix.set(new float[] { 3 1, 0, 0, 0, 0, 4 0, ...
- 下一篇
Android开发学习笔记:浅谈显示Intent和隐式Intent
Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。 一.显式Intent 一般情况下,一个Android应用程序中需要多个屏幕,即是多个Activity类,并且在这些Activity之间进行切换通过Intent机制来实现的。在同一个应用程序中切换Activity时,我们通常都知道要启动的Activity具体是哪一个,因此常用显式的Intent来实现的。 下面的例子是在同一应用程序中MainActivity启动SecondActivity,下面的代码中,主要是为“转到SecondActivity”按钮添加了OnClickListener,使得按钮被点击时执行onClick()方法,onClick()方法中则利用了Intent机制,来启动SecondActivity,关键的代码是22~25行。 main.xml <?xml version=...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境