Android一般开发的时候的屏幕适配是怎么做的
2016-05-01 22:01
525 查看
屏幕适配的像dp、sp、dpi、屏幕尺寸、分辨率等等这些概念和计算网上有大量的介绍,这里就不再啰嗦了。大家还没接触到android工作的同学会对屏幕适配感觉到头痛,或者刚开始入职的时候对美工切的图上的密密麻麻的数据感觉无从下手。接下来给大家说明一下从美工的切图到屏幕适配的过程。
我们知道android目录下的layout文件夹是放置布局文件的,还可以通过layout-***配置一些尺寸啊,横屏竖屏什么的。那我们需要为所有的分辨率都准备一份布局吗?那我们来看看市面上一些手机应用的做法吧。
这些基本都是只设置一个目录即可,百度浏览器多出来的两个目录中也就只有一两个布局文件,应该是特殊的布局。
那对于这些公司的app都是这样实现的,那我们平常只针对手机的话只写一种布局就够了。虽然android碎片化严重,但是放眼上下班地铁里的人群除了街机水果外,基本都是4-5寸左右的android机,大家手机的分辨率普遍在全高清的1920x1080的分辨率左右。所以我们针对一种或一类普遍的尺寸的手机设计手机应用即可。
这里举例1920x1080的分辨率 dpi= 480
当然图有些槽。涂上的单位为像素,那么有的公司的ui设计会帮助你转换成dp,那没有人帮助你的时候就要自给自足了,这里当dpi等于480时我们的布局就是这样写了
那我们把应用部署到模拟器看一下效果吧。
这是5.2寸的1920x1080的手机
这是测试机1280x720的分辨率
这是4.0寸的800x480的手机
这里可以看出来相近分辨率的显示效果一致,分辨率跨度过大可能导致在过低分辨率 的手机上内容显示不全,这就需要在设计的时候考虑到手机的适配。
那么我们能不能像web前端一样写百分比呢?
去年谷歌就推出了百分比布局,但是怎么说呢,需要依赖父布局,所以滑动控件什么的就没法用了,还有一些第三方实现的像鸿洋大神的AutoLayout,但是不是很完善,无法使用所有的app。
总之最基本的屏幕适配 还是得从设计图上px和dp来支持,这样可能麻烦一下,但是不会遇到一些奇怪的bug。
我们知道android目录下的layout文件夹是放置布局文件的,还可以通过layout-***配置一些尺寸啊,横屏竖屏什么的。那我们需要为所有的分辨率都准备一份布局吗?那我们来看看市面上一些手机应用的做法吧。
这些基本都是只设置一个目录即可,百度浏览器多出来的两个目录中也就只有一两个布局文件,应该是特殊的布局。
那对于这些公司的app都是这样实现的,那我们平常只针对手机的话只写一种布局就够了。虽然android碎片化严重,但是放眼上下班地铁里的人群除了街机水果外,基本都是4-5寸左右的android机,大家手机的分辨率普遍在全高清的1920x1080的分辨率左右。所以我们针对一种或一类普遍的尺寸的手机设计手机应用即可。
这里举例1920x1080的分辨率 dpi= 480
当然图有些槽。涂上的单位为像素,那么有的公司的ui设计会帮助你转换成dp,那没有人帮助你的时候就要自给自足了,这里当dpi等于480时我们的布局就是这样写了
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 我们设计在 480dpi的屏幕 分辨率为1920x1080 的 手机 红块的尺寸是宽660高360 这样转换为dp就是宽220dp高120dp--> <ImageView android:id="@+id/tv_test" android:layout_width="220dp" android:layout_height="120dp" android:background="@android:color/holo_red_light" /> </RelativeLayout>
那我们把应用部署到模拟器看一下效果吧。
这是5.2寸的1920x1080的手机
这是测试机1280x720的分辨率
这是4.0寸的800x480的手机
这里可以看出来相近分辨率的显示效果一致,分辨率跨度过大可能导致在过低分辨率 的手机上内容显示不全,这就需要在设计的时候考虑到手机的适配。
那么我们能不能像web前端一样写百分比呢?
去年谷歌就推出了百分比布局,但是怎么说呢,需要依赖父布局,所以滑动控件什么的就没法用了,还有一些第三方实现的像鸿洋大神的AutoLayout,但是不是很完善,无法使用所有的app。
总之最基本的屏幕适配 还是得从设计图上px和dp来支持,这样可能麻烦一下,但是不会遇到一些奇怪的bug。
相关文章推荐
- Android之打开闪光灯关键代码
- Visual Studio2015 里面的Android模拟器
- android代码签名和混淆打包
- Android触摸事件的传递与处理
- 【转】ANDROID APK的数字签名的作用和意义
- android中线程的应用
- Android Handler的内部原理
- android.os.NetworkOnMainThreadException
- 十三、迭代器设计模式
- Android Studio安装在线插件
- Adapter中的跳转 & Caused by:Android.util.AndroidRuntimeException
- 20145331实验四 "Android开发基础"
- Android 双击 Back 键退出程序
- 实验四 Android开发基础
- android消息机制
- [android] 优酷环形菜单-相对布局练习
- 一个android记事本的学习过程记录! (二) 4000
- Android Studio 快捷键总结
- Android学习笔记之AndroidManifest.xml文件解析
- Android用命令行来操作模拟器