android屏幕适配攻略
来源:互联网 发布:如何注册淘宝旺旺 编辑:程序博客网 时间:2024/06/05 11:44
一、计量单位概念
1.、屏幕尺寸:屏幕对角线长度(英寸)
2、屏幕分辨率:纵向像素x横向像素;单位是px
3、像素密度:dpi,每英寸像素点个数,计算方式:像素密度=对角线像素个数/对角线英寸长度; 对角线像素点个数等于纵向像素和横向像素开平方根
4、px(构成图像最小单位),dp,dip(密度无关像素),以160dpi为基准,1dp=1px
5、在不同屏幕密度大小下根据不同的图片分辨率将图片放在drawable下不同的文件夹下:drawable-mdpi(120-160dpi),drawable-hdpi(160-240dpi) ,drawable-xhdpi(240-320dpi),drawable-xxhdpi(320-480dpi),drawable-xxxhdpi(480-640dpi),在不同屏幕大小下通过values文件夹限定符提供不同的值,原理同图片drawable
二、屏幕适配解决方案:
1、支持各种屏幕尺寸
1.1、使用wrap_conteht match_parent layout_weight(权重)
weight属性的真实含义——> 计算出的宽度= 空间原来宽度+剩余空间所占百分比的宽度(屏幕总宽度—空间总宽度= 剩余宽度)
1.2、使用相对布局,禁用绝对布局
1.3、使用限定符
layout-large 适配android3.2以下设备,最小宽度限定符layout-sw600dp适配3.2以上版本
如果要兼容3.2以下,layout-large和layout-sw600dp必须同时使用
为了更好的兼容低版本,可使用布局别名来更好兼容并统一管理:
原来的写法
res/layout/main.xml 单面板布局
res/layout-large/main.xml 多面板布局(3.2以下版本)
res/layout-sw600dp/main.xml 多面板布局(3.2以上版本)
采用布局别名的写法:
1)setContentView(R.layout.main);
2)res/layout/main.xml
res/layout/main_twopanes.xml
3)values资源限定:
单面板默认布局:
res/values/layout.xml
<resources>
<item name="main" type = "layout">@layout/main</item>
</resources>
android3.2以下版本多面板布局:
res/values-large/layout.xml
<resources>
<item name = "main" type = "layout" >@layout/main_twopanes</item>
<resources>
android3.2以上版本多面板布局:
res/values-sw600dp/layout.xml;
<resources>
<item name = "main" type = "layout" >@layout/main_twopanes</item>
<resources>
使用屏幕方向限定符:
res/values-sw600dp-land/layout.xml
<resources>
<item name = "main" type = "layout" >@layout/main_twopanes</item>
<resources>
res/values-sw600dp-port/layout.xml
<resources>
<item name="main" type = "layout">@layout/main</item>
</resources>
1.4、使用自动拉伸位图(点九图)
图片命名——> image.9.png
左边和上边——>拉伸点
右边和下班——>间隔区(类似padding)
2、支持各种屏幕密度
2..1 、使用非密度制约像素
解决屏幕宽度不一致的问题,基本思路是以320为基准将屏幕均分为320份,不同屏幕大小每份的dp大小不一致:
1) values文件限制不同屏幕
values-1920*1080 lay_x.xml lay_y.xml
values-480*320 同上
注意:在values当中需要放一个默认的lay_x.xml 和lay_y.xml文件,当values分类中没有时会采用默认的values
2)lay_x.xml文件内容
<resources>
<dimen name = "x1">1.0dp</dimen>
<dimen name = "x2">2.0dp</dimen>
<dimen name = "x3">3.0dp</dimen>
. ....
<dimen name = "x320>320dp</dimen>
3)在layout.xml布局文件中设置长宽像素:
android:layout_width = "@dimen/x280"...
2..2、提供备用位图
将不同像素图片放置在相应文件夹
如果将高分辨率图放在低分辨率文件夹下,虽然图片不受影响,但是会占用更多内存
3、实施自适应用户界面流程
- android屏幕适配攻略
- Android-屏幕适配攻略
- Android屏幕适配攻略
- Android屏幕适配攻略
- Android屏幕适配攻略
- Android 屏幕适配攻略(一)
- Android屏幕适配全攻略
- Android屏幕适配全攻略
- Android屏幕适配全攻略
- Android屏幕多适配全攻略
- Android屏幕适配全攻略
- Android屏幕适配全攻略
- Android-屏幕适配全攻略
- Android屏幕适配全攻略
- android屏幕适配全攻略
- Android屏幕适配全攻略
- Android屏幕适配全攻略
- Android屏幕适配全攻略
- 增量法-插入排序算法
- 浅析socket与http
- 百度地图 v3.5搜索功能,和地图缩放按钮更改样式
- [推荐]Android消息处理机制(Handler、Looper、MessageQueue与Message) Android是消息驱动的,实现消息驱动有几个要素: 消息的表示:Message 消息
- Hadoop入门进阶课程6--MapReduce应用案例
- android屏幕适配攻略
- sqlite基本操作命令
- lodash 中文学习拾零之 Chain篇
- java多线程之synchronized和锁对象
- map容器的简单概述及入门的定义和使用方法
- UIEvent - 3
- 华为笔试.利用递归进行穷举123456的所有组合情况
- 如何解决cocos2dx 在android系统的音效bug
- Windows下CMD中文乱码问题解决方法