这周的工作对Android项目多分辨率自适应进行调整。故对这方面知识进行不断的尝试学习。Android项目刚開始做的时候一定养成编程习惯,全部资源调用放在value中。统一命名以及管理。总结了下面内容。

一、一般基本原则以及总结

1、xml布局中不要写死, 既单位不要用px。尽量用dp,或者match、warp

2、应该尽量把资源图片设计成能够拉伸的.9图,假设有渐变,尽量横向或竖向单方向渐变。这样能大大减小安装包大小,同一时候也能提高处理速度。

3、假设不想设计多套图片,那就设计最大的那套。压缩总比拉伸好,放在drawable-xhdpi这个目录。

4、写几套value值,相应不同分辨率。一套layout就可以。例如以下图所看到的。



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">



5、建立多个layout目录,目录名称为layout-800x480等。须要适应那种分辨率就写成什么。(这样的方式太累了,还会导致应用大,不建议)



6、迫不得已要重写部分layout的xml。

layout-1024x768   

layout-1024x600   

layout-1280x768 

layout-land-1024x720 //1024x768横屏

layout-port-976x768     //1024x768竖屏

注意格式,【layout】-【port/land】-【长度x宽度】

注意事项:

在android3.0后,要适配如上的分辨率,需将高度减去48像素,即底部状态栏的高度,android方可识别。

分辨率中大的数字必须写到前面,否则会产生语法错误。



7、

<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:anyDensity = "true"/>

android:anyDensity="true" 。这一句对整个的屏幕都起着十分关键的数据,值为true,我们的应用程序当安装在不同密度的手机上时,程序会分别载入hdpi,mdpi,ldpi文件 夹中的资源。



在</application>标签和</manifest> 标签之间加入上面那段代码。就可以



二、附上Android部分屏幕分辨率。像素知识。

低密度(120),ldpi

中密度(160),mdpi

高密度(240),hdpi

小屏幕

1、QVGA(240×320),2.6~3.0寸

普通屏幕

1、WQVGA(240×400)。3.2~3.5寸

2、FWQVGA(240×432),3.5~3.8寸

3、HVGA(320×480),3.0~3.5寸

4、WVGA(480×800),3.3~4.0寸

5、FWVGA(480×854),3.5~4.0寸

大屏幕

1、WVGA(480×800),4.8~5.5寸

2、FWVGA(480×854),5.0~5.8寸



屏幕尺寸分为:small,normal,large,xlarge分别表示小。中,大,超大屏

屏幕密度分为:ldpi,mdpi,hdpi,xhdpi,它们的标准值各自是:120dpi,160dpi,240dpi,320dpi



px(像素):屏幕上的点。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上。1dp = 1px。

dip:与dp同样,多用于android/ophone演示样例中。

sp(与刻度无关的像素):与dp类似。可是能够依据用户的字体大小首选项进行缩放。



由此。依据 google 的建议,TextView 的字号最好使用 sp 做单位,并且查看TextView的源代码可知 Android 默认使用 sp 作为字号单位。

关于sp与dp的选择的建议是:

 1、假设textview的显示区域能够弹性变化(wrap_content,当然其全部父view也须要能够弹性变化),这时能够优先考虑用sp,这时字体大小更改一般来说不会破坏界面的可用性



2、 与1情况相反时。textview的显示区域已经限定在一个固定值(或者其父view被限定了),这时优先考虑用dp吧,不然遇到一直使用着超大字体的用户。字体可能横向被截了,而用户不知情,会认为是程序问题。

Android 多分辨率自适应总结的更多相关文章

  1. Android多分辨率适配

    前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路, ...

  2. Android多分辨率适配经验总结

      Android多分辨率适配是一件很有意义但是比较麻烦的事情,网上有很多关于多分辨率适配的文章,多数文章讲解的都是整个APP的图片比较规则,可以将图片做成9图来完成多分辨率适配,但是对于一些游戏类应 ...

  3. 【转】android多分辨率适配

    前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路, ...

  4. Android实现自适应正方形GridView

    Android实现自适应正方形GridView  

  5. Android 多分辨率与不同语言适配

    一.适配不同国家语言 智能手机系统设置里各国语言的选项,然后我们项目里可以通过资源目录实现适配语言.我们知道工程的根目录有个res/的目录,res/下有一个资源类型的目录,其中有个values/str ...

  6. android多分辨率多密度下界面适配方案

    前言 Android 设计之初就考虑到了UI在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确,UI适配主要受平台两个因素的影响:屏幕尺寸 (屏幕的像素宽度及像素高度)和屏 ...

  7. android多分辨率多屏幕密度下UI适配方案

    相关概念 分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720,反之分辨率为1280x720的屏幕,像素宽度不一定为1280 屏幕密度:表 ...

  8. Android系统自适应屏幕大小

    1.屏幕相关概念1.1分辨率是指屏幕上有横竖各有多少个像素1.2屏幕尺寸指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸android将屏幕大小分为四个级别(smal ...

  9. 4种必须知道的Android屏幕自适应解决方案

    文章来源:http://blog.csdn.net/shimiso/article/details/19166167 demo下载:http://www.eoeandroid.com/forum.ph ...

随机推荐

  1. 鸟哥Linux私房菜知识点总结3到5章

    感觉自己对Linux的理解一直不够,所以近期翻看了一本<鸟哥的Linux私房菜>.这是一本基础的书,万丈高楼平地起,会的不多但能够学.这是我整理的一些知识点,尽管非常基础.希望和大家共同交 ...

  2. 初识MVC之建项

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到 ...

  3. 获取sqlserver数据字典的完整sql

    SELECTsysobjects.name AS 表名称 , --------------as 的作用:为字段起一个别名 --sysproperties.[value] AS 表说明 , ------ ...

  4. 在vue中使用less

    首先vue环境搭建成功 第一步: 安装 less 和less-loader 安装less依赖:npm install less less-loader --save 第二步: 修改webpack.ba ...

  5. SQL学习——基础语句(1)

    简序 1.SQL,指结构化查询语言,全称是 Structured Query Language. 2.SQL 让您可以访问和处理数据库. 3.SQL 是一种 ANSI(American Nationa ...

  6. dedecms 添加自定义图字段,调用时出错

    1:发现问题 按照以往一样高兴的认为网站就绪了,谁知道出现一个小插曲. 使用dedecms 的站长们应该知道,当一个模型的字段的不能够满足我们项目的需求的时候就会自己创建一些字段,哈今天我就遇到了耶, ...

  7. jq点击按钮打开和关闭弹出层,点击除了当前按钮以外的地方关闭弹出层

    1.html <a id="more" onclick="moreFun()">更多</a> <ul id="moreL ...

  8. Vue学习之路第九篇:双向数据绑定 v-model指令

    1.学习准备: ①:双向数据绑定可以简单理解为:后端定义的数据改变,前端页面展示的时候会自动改变,数据通过前端页面修改的时候,后端定义的数据内容也会随之改变. ②:指令中只有v-model可以实现双向 ...

  9. SQLserver 导入超大CSV(100G以上)方法

    1.似乎SQLSERVER2008对UTF8不兼容,采用SQLSERVER20052.采用SQLSERVER2005,还是出现UTF8诸如此类的问题,修改表结构,varchar改成 nvarchar3 ...

  10. 三、Git 分支

    使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线.有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 1.分支简介 ...