设计师给了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/?

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它是足够。准备几个测试手机。看的更重要的影响。

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





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4904170.html,如需转载请自行联系原作者


相关文章
|
编解码 Android开发
Android 常用布局单位区别(dp、sp、px、pt、in、mm)
Android 常用布局单位区别(dp、sp、px、pt、in、mm)
681 0
|
编解码 Android开发
DPI、PPI和Android的应用开发单位dp
DPI、PPI和Android的应用开发单位dp
Java&Android像素px、dip转换工具类
Java&Android像素px、dip转换工具类
369 0
|
存储 Java API
Android 数据存储(二)-SP VS DataStore VS MMKV
一、SharedPreferences 不同于文件的存储方式,如果要保存的键值集合相对较小,则应使用SharedReferences API。SharedReferences对象指向一个包含键值对的文件,并提供简单的读写方法。 本文从SharedReferences开始逐步引入Preference、MMKV。
1264 0
Android 数据存储(二)-SP VS DataStore VS MMKV
|
编解码 Android开发
关于Android获取屏幕宽高、dp、sp、px之间的转化
开发过程中,动态创建布局,或者自定义view,少不了需要获取屏幕宽高,这里的宽高指手机屏幕的分辨率,单位是px,而我们在布局文件中用到的空间宽高单位是dp,字体用的是sp。 这几个计量单位之间,是有关联的,比如dp与px,是通过density来相互转化的,px跟sp则通过scaledDensity来相互转化,类似于小学的除数、被除数、商,三者之间的关系。
500 0
|
存储 Android开发
【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 )
【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 )
190 0
|
Android开发
Android中常用单位dp,px,sp之间的相互转换
MainActivity如下: package cc.testunitswitch; import android.os.Bundle; import android.
832 0
|
4天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
9天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
11天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。