android屏幕适配
来源:互联网 发布:早岁那知世事艰 编辑:程序博客网 时间:2024/06/06 08:29
哈哈,今天准备开始写博客啦,当然内容不是全部原创的,自己的积淀也不够,算是归纳总结吧!自己一路走来,自学android,都是通过网上查资料学习,
也感谢前辈们留下的财富,我也算是站在巨人的肩膀上了。不过学习的过程总是零碎,自己分享一下自己的总结,给需要的人看看吧。
1.为什么屏幕适配?
说起屏幕适配,不得不是android程序员的痛啊(,至少我是。。),之前看过一个统计说当前的安卓设备超过2万种(感觉这个数量太大,好有负担),
不同分辨率,不同尺寸,为了自己的app能够给大多数机子带来良好的用户体验,所以妥妥的需要屏幕适配啊。
2.重要概念(不细说了,自己百度了,抛砖引玉)
a.屏幕尺寸:屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米
b.屏幕分辨率:指在横纵向上的像素点数,单位是px,1px=1个像素点,一般以纵向像素*横向像素,如1920*1080(构成图像的最小单位)
c.屏幕像素密度:每英寸上的像素点数,单位是dpi,即"dot per inch"的缩写
计算方法:初中数学勾股定理。。求得对角线像素再除以尺寸
d.dp、dip (Density Independent Pixels),密度独立于像素(意思就是和密度无关)。以160dpi,1dip=1px
480*320 160dpi 320dp=320px
800*480 240dpi 1dp=1.5px 320dp=320*1.5=480px
e.sp可以根据文字大小首选项进行放缩,推荐12sp以上,12sp,14sp,18sp,22sp作为首选大小
像素密度的区分
名称 像素密度范围
mdpi 120dpi-160dpi
hdpi 160dpi-240dpi
xhdpi 240dpi-320dpi
xxhdpi 320dpi-480dpi
xxxhdpi 480dpi-640dpi
3.解决方案
a.支持各种屏幕尺寸
使用wrap_content,match_parent,weight
禁用绝对布局
使用限定符
使用自动拉伸位图
1)界面布局方面
根据物理尺寸的大小准备5套布局:
(Android 3.2之前)
layout(放一些通用布局xml文件,比如界面顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),
layout-small(屏幕尺寸小于3英寸左右的布局)
layout-normal(屏幕尺寸小于4.5英寸左右)
layout-large(4英寸-7英寸之间)
layout-xlarge(7-10英寸之间)
(Android 3.2之后)
1.320,针对以下屏幕配置的设备:
240x320ldpi(QVGA手持设备)
320x480mdpi(手持设备)
480x800hdpi(高分辨率手持设备)
2.480,针对480x800mdpi的屏幕(平板或手持设备)
3.600,针对600x1024mdip的屏幕(7英寸平板)
4.720,针对720x1280mdip的屏幕(10英寸平板)
2)图片资源方面
需要根据dpi值准备5套图片资源:
drawable:主要放置xml配置文件或者对分辨率要求较低的图片
drawalbe-ldpi:低分辨率的图片,如QVGA (240x320)
drawable-mdpi:中等分辨率的图片,如HVGA (320x480)
drawable-hdpi:高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
drawable-xhdpi:至少960dp x 720dp
android从1.6和更高,Google为了方便开发者对于各种分辨率机型的移植而增加了自动适配的功能
在AndroidManifest.xm添加如下配置:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>
我想碎觉了,明天再写了,没写完。。
- 【Android】屏幕适配
- android屏幕适配
- android屏幕适配
- android 屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- android 屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android 屏幕适配
- android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android 屏幕适配
- android屏幕适配
- Android屏幕适配
- Lua切割中文字符串,按指定字符,切割字符串
- uva 11090 - Going in Cycle!!(二分+BellmanFord)
- https://readthedocs.org/
- LeetCode----Merge k Sorted Lists
- 迟到问题,其实不扣钱的话就不是问题……
- android屏幕适配
- 测试基础
- Uva-1220 Party at Hali-Bula
- uva 11294 - Wedding(2 sat)
- java基础—7.多线程
- 制作easyui部门选择插件
- 构造,析构与初始化列表
- ios8绘图方法小记touchesBegan&touchesMoved
- android logging 机制及优化