1 由于屏幕大小不同 相对布局会导致 设置marginleft =53dp 时候 两个按钮在小手机上靠的近, 在大手机上分的 开 , 此时应该用linenearlayout 的比例布局 确保在不同手机上都可以有相对的比例
2 wrap_content 和实际大小的区别 wrap_content 在不同的分辨率上会有不同 在大尺寸手机上会变大 ,为了按钮图标不因为放大而变得难看 , 可以写死 比如95dp 则在各种手机上都不拉升变形或者难看
在安卓开发中我们经常用到wrap_content来配置控件的layout_width和layout_height,例如:
这样设置之后控件实际大小是多少呢?
图片logo.png文件实际大小是146x162,单位是像素
在s5手机上(分辨率1920*1080 dpi=480)
如果将图片放在drawable-mdpi文件夹中 实际大小是438x486 原始大小x3
如果将图片放在drawable-hdpi文件夹中 实际大小是292x324 原始大小x2
如果将图片放在drawable-xhdpi文件夹中 实际大小是219x243 原始大小x1.5
如果将图片放在drawable-xxhdpi文件夹中 实际大小是146x162 原始大小x1
也就是说安卓系统将依据手机的dpi自动缩放图片大小;例如你的手机是hdpi,图片只放在drawable-mdpi文件夹中,
wrap_content实际大小将是图片原始大小的1.5倍(240/160),注意如果图片只放在drawable-xdpi中,将会出现找不到资源的错误。
所以说:你只设置wrap_content,那么图片是会自动根据屏幕分辨率进行拉伸的,所以你为了不拉伸,可以用layout_width,layout_height来进行设置,但是这样用绝对大小会导致不会适配屏幕。
3 布局规范 先按比例 划分 weight 有空位用view补足. 如果有按钮或者不可拉伸的图片用写死dp补足
4 一个布局一部分写死, 当设weight时 是剩余部分进行分割 , 如果还有match parent 则是填充最后部分
5 no-dhpi 放在这里的图片不会拉伸.
6 ui切图的分辨率是用什么手机分辨率做时候 切换成dp的时候就除以几 比如用720*1280 则xhdpi 分辨率应该除以2