Android:设计之屏幕适配

据统计目前市场Android手机的分辨率有是10余种,分辨率如此广泛使得我们在处理分辨率适应方便遇到不少难题,本文就此难点记录设计与实际布局中的解决技巧。

以320x480为蓝本设计布局

因为Android布局的时候一般用dp为单位,而我们设计的时候一般用px为单位,这涉及到单位转换问题,而在mdpi下,屏幕密度为160,px和dp是1:1关系,即1px =1dp(dpi/160),

所以为了更方便转换,在进行设计的时候,可以优先以mdpi,即320x480px为蓝本进行设计。

还有别忘了手机头顶的状态栏高度了

那么当我们用photoshop测量间距是10px时,就可以在布局里面标注10dp。

对应关系表
资源文件夹 屏幕分辨率 类型 对应图标尺寸 屏幕密度 1dp
xhdpi  超高分辨率              1280*720  WQVGA 96*96  320 =2
hdpi   高分辨率              480*800  WVGA 72*72  240 =1.5
mdpi  中等分辨率 480*320 HVGA、VGA 48*48      160 =1
ldpi    低分辨率 320*240 QVGA 36*36 120 =0.75

Android:布局单位换算 >>

为不同的屏幕尺寸提供不同的图片:

默认情况下,Android会缩放.png、 .jpg、.gif文件和.9.png,使其呈现合适的尺寸,如果没有匹配资源可用,将使用默认资源或其他密度相关资源进行缩放。默认资源指的是没有限定 符的资源(在drawable/ 下的就是是默认的资源)。 而缩放可能让它们失真,所以为了让图片有最好的展示,应该为不同屏幕密度提供不同大小的图片。如果提供一套图至少提供更高分辨 率高密度的位图而不是提供哪些中等密度设计的位图。

Android工具:延展图片NinePatch>>

在res/目录下创建一个不同的layout文件夹、values文件夹、drawable文件夹等资源文件夹

资源文件夹命名:资源名-属性1-属性2-属性3-属性4-属性5.....( values-ldpi、values-land-mdpi)

即以<resources_name>-<qualifier>格式命名系统会根据屏幕的大小自己选择合适的进行使用。

其中resources_name资源名就是资源类型名,包括:drawable, values, layout, anim, raw, menu, color, animator, xml;

<qualifier> 是一个配置限定符,指定对应的屏幕参数,限定符可以参考以下表:

手机特性 资源限定符 描述
屏幕尺寸 small 小尺寸屏幕
normal 正常大小的屏幕
large 大尺寸屏幕
xlarge 超大尺寸的屏幕
分辨率 320x240 values-ldpi-320x240
480x320 values-480x320
800x480 values-800x480
854x480 values-854x480
960x540 values-960x540、values-hdpi-960x540
960x640 values-960x640、values-xhdpi-960x640
1024x600 values-mdpi-1024x600
1280x720、1280x800 values-1280x720
其他 values-xhdpi-1184x768、values-xhdpi-1280x720、values-xhdpi-1920x1080
密度 ldpi 低密度~120dpi
mdpi 中密度~160dpi
hdpi 高密度~240dpi、
xhdpi 超高密度?320dpi 、
nodpi 存放无视屏幕密度的资源,如:一些不能被拉伸的图片放在 drawable-nodpi ,但宽和高要写wrap_content
tvdpi 主要用于电视,大多数App不需要用到
方向 land 横向屏幕
port 纵向屏幕
版本 v1~v19 新建工程时可以看见,API 1到API 19

假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240, values-480x320。然后在文件夹 values ,values-320x240 和  values-480x320 下新建xml文件dimens.xml设置字体大小、宽、高等属性。Android 系统会根据当前设备的屏幕大小、分辨率、屏幕密度、方向、长宽比等信息,选择相应文件夹进行加载。

注意的是:

values在values-ldpi之前先找到,系统认为values比values-ldpi更接近。

多分辨率兼容性测试

自己定制AVD作为应用程序的测试环境,模拟真实机器大大小和密度,

布局文件可以在预览看到效果:

时间: 2024-08-09 11:52:55

Android:设计之屏幕适配的相关文章

Android 多分辨率多屏幕适配

请参见文章:http://blog.csdn.net/jiangxinyu/article/details/8598046 文章描述非常清晰. Android 多分辨率多屏幕适配

android下在屏幕适配小总结

为什么要屏幕适配?为此我就不说了,网上处理方法要么让你用几套不同分辨率的图片,要么写几套布局文件,要么就是在xml中写dip(这个还是可以的),前面两种感觉过程工作量太大了,由加载大图片的优化思想 同样对一个小算法来实现此功能.. 先来测试代码: package cn.marsXTU.Screenadapter; import android.os.Bundle; import android.app.Activity; import android.content.Context; impor

Android最简单屏幕适配,项目用dp,sp的只需加一行代码

AutoScreenAdaptation 安卓屏幕适配 项目直接用dp和sp的可以不用改动 直接加入一句代码即可实现适配 还未确定会不会有兼容性问题和性能问题 需要时间测试 目前测试过模拟器的不同分辨率和不同dpi基本效果不会差太多 旋转屏幕 布局会按横版的大小缩放 视图也不会乱 支持x  y适配 效果图 720x1280 480x800 主要代码 public classScreenAdaptation { privateApplication.ActivityLifecycleCallbac

Android 浅谈 设计与屏幕适配

extends: http://www.ui.cn/detail/45435.html http://www.2cto.com/kf/201501/372699.html http://www.cnblogs.com/bluestorm/p/3640786.html http://www.shejidaren.com/android%E7%B3%BB%E7%BB%9F%E5%AD%97%E4%BD%93%E8%A7%84%E8%8C%83%E4%B8%8E%E5%BA%94%E7%94%A8%E

Android开发之Ruby实现Android自动化屏幕适配

背景:我相信对于Android开发者来说,屏幕适配一直是你心中的痛-,为了让Android开发者从屏幕适配的痛苦中解脱出来,我决定实现这个Android自动化屏幕适配的1.0版本.下面来讲一下思路. 首先以values-w360作为标准也就是360dp,对应的设备就是720×1080俗称的720P的屏幕,也就是说设计师给的设计稿是以720P的屏幕作为设计图的,那么如果设计图上面的尺寸是100px,那么我们就需要用100/2 = 50dp得到我们的这个标准值,以此类推,将app中所有需要适配的尺寸

Android 多屏幕适配 dp和px的关系

一直以来别人经常问我,android的多屏幕适配到底是怎么弄,我也不知道如何讲解清楚,或许自己也是挺迷糊. 以下得出的结论主要是结合官方文档进行分析的https://developer.android.com/guide/practices/screens_support.html android由于碎片化太严重,而导致市面上出现非常多的种类尺寸手机设备,当然也包括非常奇葩的分辨率手机.所以我们在布局的时候使用px作为单位显然不能很好的做到多屏幕的适配.其实在官方文档中有介绍一种解决多屏幕适配的

Android屏幕适配框架-(今日头条终极适配方案)

在Android开发中,屏幕适配是一个非常头痛的问题,因而为了去进行屏幕适配,作为程序员,是呕心沥血,历经磨难,哈哈 我们之前做屏幕适配一般都会用到一下两种方式: 第一种就是宽高限定符适配,什么是宽高限定符适配呢 ├── src/main│   ├── res│   ├── ├──values│   ├── ├──values-800x480│   ├── ├──values-860x540│   ├── ├──values-1024x600│   ├── ├──values-1024x768│

给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手

Calces系列相关文章:Calces自动实现Android组件化模块构建 前言 屏幕适配一直是移动端开发热议的问题,但是适配方案往往在实际开发的时候会和UI提供的设计稿冲突.本文主要是基于官方推荐的配置限定符方案(Smallest Width目前Android屏幕适配的最优方案)来实现一个接近完美的屏幕适配方案. 对于完美的适配方案笔者是这样定义的: 能完美适配UI稿. 适配完毕后,在高清设备上不会出现模糊的现象. 尽量减少对项目的侵入性. 下面我会从屏幕适配的一些基础知识入手,向你慢慢展现一

android屏幕适配详解

android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如果是纯色背景,尽量使用android的shape 自定义. 5.如果需要在特定分辨率下适配,可以在res目录上新建layout