android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项

2023-11-15

1 Android手机目前常见的分辨率

1.1 手机常见分辨率:

4:3
VGA     640*480 (Video Graphics Array)
QVGA  320*240 (Quarter VGA)
HVGA  480*320 (Half-size VGA)
SVGA  800*600 (Super VGA)

5:3
WVGA  800*480 (Wide VGA)

16:9
FWVGA 854*480 (Full Wide VGA)
HD        1920*1080 High Definition
QHD     960*540
720p    1280*720  标清
1080p  1920*1080 高清

手机:
iphone 4/4s    960*640 (3:2)
iphone5         1136*640
小米1             854*480(FWVGA)
小米2             1280*720

 

1.2 分辨率对应DPI
"HVGA    mdpi"

"WVGA   hdpi "
"FWVGA hdpi "
"QHD      hdpi "
"720P     xhdpi"
"1080P   xxhdpi "

 

2 屏幕适配的注意事项

2.1 基本设置

 

2.1.1 AndroidManifest.xml设置

在中Menifest中添加子元素

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:

1) 如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;

2) 如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;

3) 如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有,系统会加载drawable-mdpi中的资源,其他同理,使用最接近的密度级别。

2.1.2 横屏竖屏目录区分

1) drawable

a) drawable-hdpi该图片即适用于横屏,也适用于竖屏;

b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源;

c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。其他同理。

2) layout

在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。

2.2 多屏幕适配的4条黄金原则

1) 在layout文件中设置控件尺寸时应采用fill_parent、wrap_content、match_parent和dp;

具体来说,设置view的属性android:layout_width和android:layout_height的值时,wrap_content,match_parent或dp比px更好,文字大小应该使用sp来定义

2) 在程序的代码中不要出现具体的像素值,在dimens.xml中定义;

为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

3) 不使用AbsoluteLayout(android1.5已废弃) ,可以使用RelativeLayout替代;

4) 对不同的屏幕提供合适大小的图片。

不同大小屏幕用不同大小的图片,low:medium:high:extra-high图片大小的比例为3:4:6:8;举例来说,对于中等密度(medium)的屏幕你的图片像素大小为48×48,那么低密度(low)屏幕的图片大小应为36×36,高(high)的为72×72,extra-high为96×96。

2.3 使用9-patch PNG图片

使用图片资源时,如果出现拉伸,因为图片处理的原因,会变形,导致界面走形。9-patch PNG图片也是一种标准的PGN图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

“上、左”定义可拉伸区域

“右、下”定义显示区域,如果用到完整填充的背景图,建议不要通过android:padding来设置边距,而是通过9-patch方式来定义。

Android SDK中提供了编辑9-Patch图片的工具,在tools目录下draw9patch.bat,能够立刻看到编辑后的拉伸效果,也可以直接用其他图片编辑工具编辑,但是看不到效果。

2.4 不同的layout

Android手机屏幕大小不一,有480x320, 640x360, 800x480……

怎样才能让Application自动适应不同的屏幕呢?

其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640x360、layout-800x480……所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

2.5 测试验证

一般使用AVD Manager创建多个不同大小的模拟器,如果条件具备,也可以直接用真机测试,这个比较靠谱。

3 参考资料

http://blog.csdn.net/guozh/article/details/8954994

 http://my.eoe.cn/cainiao1/archive/2348.html皇马船长

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项 的相关文章

  • R语言编写函数

    基本思路参考此文章 http blog csdn net myl1992 article details 44936009 在这片博文中涉及到list相关知识 很受用 http blog csdn net u012543538 articl
  • Hudi 基础入门篇

    Hudi 诞生 Apache Hudi由Uber开发并开源 该项目在2016年开始开发 并于2017年开源 2019年1月进入 Apache 孵化器 且2020年6月称为Apache 顶级项目 目前最新版本 0 9 0版本 Hudi 一开始
  • JSONArray属性值的修改

    之前直接通过生成字符串后进行字符串替换实现的 实际上这里可能会替换调value的值中相同的字符 虽然概率很低 但是鉴于对个人的严格要求 还是严谨地修改了实现方法 主要基于如下的方法 public static JSONObject tran
  • VC++ 文件操作封装类

    头文件声明 SysUtils h pragma once include
  • 什么是模式识别,模式识别概念的基本介绍

    模式识别又常称作模式分类 从处理问题的性质和解决问题的方法等角度 模式识别分为有监督的分类 Supervised Classification 和无监督的分类 Unsupervised Classification 两种 模式还可分成抽象的
  • Python入门之类和对象

    对象 属性 方法 对象是类的实例 换句话说 类主要定义对象的结构 然后我们以类为模板创建对象 类不但包含方法定义 而且还包含所有实例共享的数据 封装 信息隐蔽技术 我们可以使用关键字 class 定义 Python 类 关键字后面紧跟类的名
  • TextureTailor自制Plist碎图工具

    最近在开发小游戏 美术资源是个令人头疼的问题 故搜寻了一些网上的资源文件 但是总被plist格式和png图片格式所困扰 在参考了一些大佬的代码后自制了一个符合我个人需求的小工具 先放源码地址 TextureTailor 再来预览一下效果 界
  • linux服务篇-RSYNC数据备份

    Rsync remote sync 是UNIX及类UNIX平台下一款神奇的数据镜像备份软件 它不像FTP或其他文件传输服务那样需要进行全备份 Rsync可以根据数据的变化进行差异备份 从而减少数据流量 提高工作效率 你可以使用它进行本地数据
  • 关于深度学习中的分类器

    因为之前一直都是用caffe做图像去噪 增强方面的工作 没太接触分类 上个学习会上通过报告学习了下关于分类的相关基础知识 为接下来分类的相关工作研究奠定下基础 基础之分类器 1 SVM 线性核SVM 一般应用于多分类 分类的结果 如3分类
  • 开关电源环路学习笔记(6)-开关变换器传递函数Gvd(s)推导过程

    终于到了最关键的环节 也是最难的环节 如何求出开关级的传递函数 也就是下图这一级 哎 不得不说 太难了 不过没办法 先前夸下海口 跟兄弟们说我要把环路搞清楚 现在搞不动也得搞啊 这一级之所以这么难 主要是有开关元器件 本身是非线性的 当然了
  • ip命令网络配置

    Linux的ip命令和ifconfig类似 但前者功能更强大 并旨在取代后者 使用ip命令 只需一个命令 你就能很轻松地执行一些网络管理任务 ifconfig是net tools中已被废弃使用的一个命令 许多年前就已经没有维护了 Linux
  • 华为方舟编译器开源项目编译第四弹——自带Java测试用例的编译

    在编译Java测试用例时的错误提示信息 javac option bootclasspath not allowed with target 1 9 Usage javac
  • 计算机硬件基础——第五章:指令系统(二)

    文章目录 指令 要求计算机执行特定操作的命令 是程序员智慧计算机工作的最小单位 指令系统 一台计算机全部指令的集合 也称为计算机指令集 80X86 CPU的常用指令 逻辑运算指令 用来对字或字节按位进行逻辑运算 逻辑与AND 指令 逻辑或O
  • 计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

    目录 一 计算机网络的概念 二 计算机网络的功能 三 计算机网络的组成 1 组成部分 2 工作方式 3 功能组成 四 计算机网络的分类 1 按分布范围分 2 按使用者分 3 按交换技术分 4 按拓扑结构分 5 按传输技术分 五 标准化工作
  • WAF识别软件(WAFW00F)以及WAF绕过

    责任声明 本文章仅供学习交流使用 如有利用进行非法行为 上传者不承担任何责任 使用者后果自负 WAF防护分析 什么是WAF Web应用防护系统分为两种 软件与硬件 安全公司内部的为硬件 个人或小企业为软件 无论哪一种都是为web提供安全 存
  • 有效数字

    有效数字 数学上用 四舍五入 的法则将一个位数很多的数表示成一定位数的数 如果一个近似数的误差限是它某一位的半个单位 则称它准确到这一位 即该位数字是准确的 有效的和可靠的 并且 从该位起直到前面第一个非零数字为止的所有数字都称为有效数字
  • mysql ERROR: Error 1005: Can't create table (errno: 121)

    Q Executing SQL script in server ERROR Error 1005 Can t create table aquaticstar link errno 121 A I searched quickly for
  • 转:CDH5 集群安装教程

    一 虚拟机的安装和网络配置 1 虚拟机安装 2 安装CentOS 6 5 64位版本 桥接模式 Master 内存 3G 硬盘容量40G 4核 Slave 内存2G 硬盘容量30G 2核 3 网络配置 master slave 1 进入ro
  • 时序预测

    时序预测 MATLAB实现GM 1 1 灰色时间序列预测 目录 时序预测 MATLAB实现GM 1 1 灰色时间序列预测 预测效果 基本介绍 建模步骤 程序设计 学习总结 参考资料 预测效果 基本介绍 GM 1 1 模型的预测原理是 对某一
  • Linux修改主机名永久生效

    Linux centos7非此方法 修改主机名 永久生效 linux查看主机名 查看主机命令 root linux epm2 hostname localhost localdomain localhost localdomain即为默认的

随机推荐

  • 如何发布tms xdata server(sqlite)

    1 在fdconnection中将数据库路径设置成 employee db即可 2 在云服务上创建一个文件夹如d sparkle文件夹 3 复制exe sqlite3 dll employee db 数据库 运行 4 结果
  • html表单填写保存,如何从HTML表单读取输入并将其保存在文件中-Golang

    我试图建立一个非常简单的Web服务器 用户可以在其中访问站点并写入一个字符串和一个整数 然后我想保存这两个输入 我的想法是将其保存到一个文本文件中 该文件也可以显示在浏览器 textfile 我不知道关于SO的规范是多少代码可以发布 但是到
  • 【沧海拾昧】MATLAB/Simulink仿真的基本操作

    C0402 沧海茫茫千钟粟 且拾吾昧一微尘 沧海拾昧集 CuPhoenix 阅前敬告 沧海拾昧集仅做个人学习笔记之用 所述内容不专业不严谨不成体系 如有问题必是本集记录有谬 切勿深究 目录 一 新建Simulink仿真 二 几种常用的模块和
  • 【Android】【移动应用开发】APP案列

    1 通讯录功能实现 页面布局代码如下 activity main xml 主界面布局代码
  • 职场上会用Python的人到底有多牛?

    这个人工智能崛起的时代 似乎人人都在聊 Python 从硬件的芯片层面 物联网 一路杀到云端 大数据 人工智能这些炙手可热的领域 无论什么领域 只要它需要编程 都会有Python的身影 下面就和大家一起来聊聊 Python 的好 到底它牛在
  • python3 tkinter 刷新标签图片

    coding utf 8 import tkinter as tk import os class RuKou tk Frame 登入的入口 将要做成运行时显示接口所返回的图片并展示 def init self master None 在这
  • Linux获取当前时间

    1 Linux下与时间有关的结构体 struct timeval int tv sec int tv usec 其中tv sec是由凌晨开始算起的秒数 tv usec则是微秒 10E 6 second struct timezone int
  • 在Markdown中用LaTeX/KaTeX输入公式-csdn

    在Markdown中用LaTeX输入公式 csdn Markdown语法简洁 LaTeX版面优美 相互配合 可以使用Markdown处理大多数的公式输入 LaTeX的教程中 刘海洋的 LaTeX入门 全面专业 其中第1章第2节的示例 杂谈勾
  • TCP之Delay Ack和Nagle算法

    TCP之Delay Ack和Nagle算法 1 Delay Ack TCP是可靠传输 可靠的核心是收到包后回复一个ack来告诉对方收到了
  • 推挽电路 MOS管、推挽输出和开漏输出

    专题5 硬件设计 之 48 推挽电路驱动MOS管 嵌入式工程师成长之路的博客 CSDN博客 推挽驱动 专题2 电子工程师 之 硬件 之 44 MOS管的功能特点 专题2 电子工程师 之 硬件 之 45 AON6244 MOS管数据手册分析
  • java 判断一个对象是否为空对象

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 最近项目中遇到一个问题 在用户没填数据的时候 我们需要接收从前端传过来的对象为null 但是前端说他们一个一个判断特别麻烦 只能传个空对象过来
  • WEBRTC+windows10+vs2017编译全过程

    1 下载depot tools https storage googleapis com chrome infra depot tools zip 下载后将其解压到相应文件夹中 并将其路径添加到系统的环境变量中 2 自动更新工具 管理员权限
  • 04 ZooKeeperAPI实战

    文章目录 04 ZooKeeperAPI实战 1 IDEA环境搭建 2 zk连接创建与关闭 3 创建节点 4 删除节点 5 获取数据和验证连接转移 6 注册watcher监听和监听事件被触发 7 判断节点是否存在和修改节点 8 判断节点是否
  • 机器人到达终点有几条路径(动态规划)

    无障碍版本 A robot is located at the top left corner of a m x n grid marked Start in the diagram below The robot can only mov
  • Python中的“ @”(@)符号有什么作用?

    我正在看一些使用 符号的Python代码 但我不知道它的作用 我也不知道要搜索什么 因为搜索Python文档时会出现 或者当包含 符号时Google不会返回相关结果 1楼 此代码段 def decorator func return fun
  • FreeRTOS死机原因

    1 中断回调函数中没有使用中断级API xxFromISR 函数 xSemaphoreGiveFromISR uart busy HighterTask 正确 xSemaphoreGive uart busy 错误 2 比configMAX
  • Docker搭建Hadoop集群

    目录 1 拉取centos镜像 2 基础镜像配置 基于centos构建hadoopbase镜像 3 集群环境配置 1 创建3个容器 2 配置网络 3 配置主机和ip的映射关系 4 配置3个节点的免密登录 4 搭建hadoop集群 1 安装h
  • FISCO BCOS——SmartDev-Contract——MarriageEvidence结婚证书合约案例分析

    MarriageEvidence结婚证书合约案例分析 一 合约场景分析 二丶基础合约介绍 1 角色合约 1 功能说明 2 接口说明 3 使用说明 2 存证合约 1 功能说明 2 接口说明 3 使用说明 三丶业务合约介绍 1 结婚证书合约 1
  • 瞬时极性法对正负反馈的判断方法_如何判断放大电路中的反馈及类型?

    负反馈放大器可组合成四种类型 即 电流串联 电流并联 电压串联 电压并联四种负反馈类型 正负反馈的判断 正负反馈的判断使用瞬时极性法 瞬时极性是一种假设的状态 它假设在放大电路的输入端引入一瞬时增加的信号 这个信号通过放大电路和反馈回路回到
  • android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项

    1 Android手机目前常见的分辨率 1 1 手机常见分辨率 4 3 VGA 640 480 Video Graphics Array QVGA 320 240 Quarter VGA HVGA 480 320 Half size VGA