Android开发之屏幕适配
来源:互联网 发布:青蛙寿命 知乎 编辑:程序博客网 时间:2024/06/05 14:22
- 每个开发android都有过因为屏幕适配而感到头痛,Android手机屏幕类型十分繁多, 大小尺寸,长宽比例都不尽相同,同一个界面在不同分辨率的手机上可能出现布局错乱,控件跑位的现象,所以在这里我写一篇关于屏幕适配的做法。
- 在这里声明我开发Android也没有多长时间,我就写一下我自己在项目中屏幕适配的做法,可能有说错的地方如果发现请各位指点出来,或者各位有更好的方法也请分享我一下在这里就先谢过各位了.
- 下面都是亲测都可以做到屏幕适配
(一)关于布局
我们都知道Android的五大布局每种布局都会有他独特的特点但是在我们布局的时候尽量使用RelativeLayout(相对布 局)和LinearLayout(线性布局)不要使用绝对布局
(二)关于单位
在这里我先介绍一下Android的几个常用尺寸单位
dp:dp也即dip(Density-independent Pixels),是一种与屏幕密度无关的尺寸单位,当屏幕密度是160dpi时,1dp=1px。当运行在高dpi的屏幕上时,dp就会按比例放大,当运行在低dpi的屏幕上时,dp就会被按比例缩小。因此dp是一种简单的解决view在不同大小屏幕上显示的问题的解决方案。
sp:sp(Scale-independent Pixels)和dp是比较相似的,但是它会随着用户对系统字体大小的设置进行比例缩放,换句话说,它能够跟随用户系统字体大小变化。所以它更加适合做为字体大小的单位。
pt:pt(Point)是一个基于屏幕大小的物理尺寸,1pt等于1/72英寸(inch)。(不常用)
px:px(Pixels)相当于实际屏幕的像素,由于不同屏幕的像素数差异比较大,因此这个单位不被推荐用于尺寸单位
所以布局中尽量使用dp为单位字体大小尽量使用sp为单位
如果真的要使用px为单位可以在Values文件夹下穿件不同屏幕的lay_y文件夹或者lay_x文件夹这些文件夹就会有不同屏幕所代表的px这些是以1280*720为标准
这里就是使用px时文件夹的创建方法关于xml可以在网上搜一下
(三)自适应屏幕大小
AndroidManifest.xml文件的元素如下添加子元素
android:anyDensity=”true”,系统会依据屏幕密度,自动去找对应的文件夹
就是根据不同屏幕密度寻找相应的xml文件夹
AndroidManifest.xml中的代码
然后在layout中创建几个不同屏幕大小的文件夹
layout-small(屏幕尺寸小于3英寸左右的布局)
layout-normal(屏幕尺寸小于4.5英寸左右)
layout-large(4英寸-7英寸之间)
layout-xlarge(7-10英寸之间)
将自己需要适配的布局文件复制到上面四个layout中即可
(四)图片适配
- 图片文件夹
480*800切下来的图我们放在drawable-hdpi目录下
按照2:3放大的图标放在drawable-xhdpi目录
按照2:3放大的图标放在drawable-xhdpi目录
按照2倍放大的图标放在drawable-xxhdpi目录下。
android会根据手机的密度优先查找对应的目录的资源
有些图片可以在drawable-hdpi,drawable-xhdpi,drawable-xxhdpi文件夹下都放一张图片 - 点九图片的使用
- 如果是纯色背景,尽量使用android的shape 自定义
黑色加粗为重点
这里我总结一下
一、尽量使用RelativeLayout(相对布 局)和LinearLayout(线性布局)不要使用绝对布局
二、布局中尽量使用dp为单位字体大小尽量使用sp为单位
三、把需要适配的布局放到自己创建的不同屏幕大小的layout文件中
四、图片纯色尽量背景尽量使用
0 0
- android开发之万能屏幕适配
- Android 开发之屏幕的适配
- Android开发之浅谈屏幕适配
- Android开发基础之屏幕适配
- Android开发之屏幕适配
- Android 开发之屏幕适配 dimens
- Android开发之--屏幕适配问题
- Android开发之Ruby实现Android自动化屏幕适配
- Android开发 屏幕适配之像素密度适配
- Android开发 屏幕适配之像素密度适配
- Android官方开发中心之Web Apps屏幕适配
- android开发之屏幕适配工具类
- Android开发 屏幕适配
- Android开发屏幕适配
- Android开发屏幕适配
- Android开发屏幕适配
- Android开发屏幕适配
- android 之屏幕适配
- c语言字符串整数转换
- opencv学习之常用函数
- 【Laravel】 的请求生命周期
- 简单认识TCP/IP协议
- Python学习笔记
- Android开发之屏幕适配
- Linux中txt和windows中的txt的区别
- 使用moy快速开发后台管理系统(四)
- Android常用框架
- Linux环境变量与文件查找
- 2017信息ACM英雄定级赛(同步赛) 题解
- 页码统计
- SSM框架打造完整电商平台(五)(完结)
- SpringSecurity