Android屏幕大小适配问题解决



一、一些基本概念

1、长度(真实长度):英寸、inch

2、分辨率:density 每英寸像素数  dpi(密度)

3、像素:px

4、dip的公式:px /dip=dpi/160  所以 dip 类似于英寸、长度(dp=dip,sp类似于dip)  dip=160*inch

dip= 160/dpi * px

当dip一定时,dpi 越大,px就越大

5、广义分辨率=长px*宽px

二、经常使用规律

1、平时我们说 手机的分辨率是 320*480的,事实上的这里的分辨率是相对分辨率

意思是:水平方向上的像素数是320,垂直方向上像素数是480,

分辨率是160(默认是160,意思是每英寸像素数160)

那么水平方向:320 /160=2英寸

垂直方向:480/160=3英寸

于是乎 屏幕对角线 是根号下4*9=3.6(这就是常说的3.6英寸屏幕)


2、说一个手机的屏幕參数有三个:长宽像素之积(相对分辨率)、真实分辨率(dpi)、对角线长度


3、模拟器的分辨率都是160,所以像素越大,屏越大


4、l、m、h 三个目录是按 真是分辨率dpi 来相应找文件的。


5、有三种方案解决屏幕适配

(1)按像素比      y/开发时用的屏幕像素=x/用户设备像素

(2)按长度        用dip(如果屏幕尺寸基本不变)

(3)按密度        放在l、m、h目录(如果屏幕尺寸基本不变,dpi越大 px越大)

6、假设手机是hdpi,但hdpi里没有东西,l里有东西,程序就会去l里找图片而且把它按比例放大。


7、最全的办法:单独适配

屏幕分辨率:1024x600
density:1(160)
目录:values-mdpi-1024x600

屏幕分辨率:1024x600
density:1.5(240)
目录:values-hdpi-683x400  由1024/1.5  600/1.5得到,须要四舍五入。

屏幕分辨率:800x480
density:1(160)
目录:values-mdpi-800x480

屏幕分辨率:800x480
density:1.5(240)
目录:values-hdpi-533x320  由800/1.5  480/1.5得到,须要四舍五入。

以此类推
普通情况下须要创建出values 、values-mdpi 、 values-hdpi目录,以备在一些没有规定的尺寸屏幕上找不到资源的情况。


8、我的原则,能用拉伸图片的就拉伸、能用相对布局的就用相对布局、能用代码计算宽度就代码计算。


让美工出一份  1080*1920 放到XXH

布局时依照:宽:320dip 高 480 dip


9、主流机型參数:

比例
0.75
1
1.5
2
3
最常见的像素长宽
240
320
480
640*960
960*1440
dpi
~120
~160
~240
~320
~480
目录
L
M
H
XH
XXH
主流机



720*1280(红米、s3、note2)
720*1280(米2)1080*1920(米3、note3、s4)


1dp
=1px

1dp
=2px
1dp
=3px
主流机



note2、红米、s3 米2、米3、s4、note3


ldpi Resources for low-density (ldpi) screens (~120dpi).
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).


----------------------------------------------------------------

红米:


屏幕分辨率为:720 * 1280

绝对宽度:720pixels

绝对高度:1280pixels

逻辑密度:2.0

X 维 :294.96774像素每英尺

Y 维 :285.193像素每英尺


res/drawable下的文件会做失真压缩

res/drawable-nodpi下的文件不做不论什么处理


=================================

10、获取屏幕像素的方法

String str = "";

        DisplayMetrics dm = new DisplayMetrics();

        dm = this.getApplicationContext().getResources().getDisplayMetrics();

        int screenWidth = dm.widthPixels;

        int screenHeight = dm.heightPixels;

        float density = dm.density;

        float xdpi = dm.xdpi;

        float ydpi = dm.ydpi;

        str += "屏幕分辨率为:" + dm.widthPixels + " * " + dm.heightPixels + "\n";

        str += "绝对宽度:" + String.valueOf(screenWidth) + "pixels\n";

        str += "绝对高度:" + String.valueOf(screenHeight)

                + "pixels\n";

        str += "逻辑密度:" + String.valueOf(density)

                + "\n";

        str += "X 维 :" + String.valueOf(xdpi) + "像素每英尺\n";

        str += "Y 维 :" + String.valueOf(ydpi) + "像素每英尺\n";

        L.i(str);


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源 免费 java CMS - FreeCMS1.9 会员组管理

2019独角兽企业重金招聘Python工程师标准>>> 项目地址:http://www.freeteam.cn/ 会员组管理 会员组分为两种,一级是经验会员组,一种是特殊会员组。 经验会员组的会员会根据经验自动变更,特殊会员组不会自动变更&…

蓝桥杯历年预赛习题

标题:啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一个整数。请通过浏览器提交答案。 不要书…

产品经理,你来自江湖

2019独角兽企业重金招聘Python工程师标准>>> 产品经理,你来自江湖 ----论产品经理的发展中的技能与技能图书 导读: 过去的15年中,在互联网行业,我认为没有一个职位比产品经理对行业的推动更大,这些年里&…

小谈深度优先搜索

最近读了一本算法书,书中提到了深度优先算法,于是我就整理了一下。 引入小题: 解决方案:这里先使用最简单最常用的穷举法时行求解。(此代码中的book数组起到了标记的作用,可以参考桶装法排序了解标记的好处…

vim学习(2)小幅提升

2019独角兽企业重金招聘Python工程师标准>>> 搜索: 忽略大小写: :set ignorecase :set noignorecase 在文本中查找下一个WORD: 把光标定位于这个word上,然后按下"*"键 /word "#"命令是&qu…

NetCore NW714 v2.0路由器TTL救砖

路由器成砖状态: 1.客户端无法获取IP地址 2.客户端设置IP地址后,无法PING通路由器IP地址。 3.路由器按reset按钮,无法重置路由器。 4.路由器的指示灯只有SYS和WPS亮,WPS微亮。 5.在路由器的LAN口和WLAN口插入网线,相应…

斐讯k1路由器刷Breed BootLoader(不死UBoot)

前段时间斐讯搞活动,我入手了一部139元的斐讯K1路由器,感觉硬件配置不错,于是就给K1路由器刷入了Breed启动程序。 路由器外观: 路由器内观: 硬件配置: CPU:MediaTek MT7620A ver 2,eco 6 内存…

Openwrt虚拟WAN口叠加网速

Openwrt路由器系统功能强大,接下来我就要用这个系统叠加网速了。 网络环境 我这边用的网络是学校办公室的,听到学校办公室的网,大家应该会认为网速很快,但是我这个学校在交换机上把每个IP的最大速率限制在了1MB/S,实在…

PHPCMS代码生成器

软件截图 软件说明 软件名称:PHPCMS代码生成器 版本:v1.0 开发语言:易语言 软件说明:此软件是用于对PHPCMS模板进行编辑制作的高效代码生成器,大部分的操作代码在此软件内都可实现,欢迎使用。 火眼检测报告…

18款 非常实用 jquery幻灯片图片切换

1、jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动 jquery图片特效制作仿腾讯QQ商城首页banner焦点图片轮播切换效果,带索引按钮控制和左右按钮控制图片切换。 查看演示>> 下载地址 2、jquery图片切换插件制作图片层叠缩放展示效果 jquery图…

全国电视直播v1.0

软件截图 软件说明 软件名称:电视直播 版本:v1.0 开发语言:易语言 软件说明:此软件可以观看几乎全国各地的电视台,无如播放不流畅,可以切换左侧的播放源,欢迎使用。 下载地址:http…

迅雷会员帐号获取器

软件截图 软件说明 软件名称:迅雷会员获取器 版本:v1.0 开发语言:易语言 软件说明:此在左上角的下拉列表框中选择来源,单击“获取帐号”即可在下方的列表中出现迅雷会员的账号和密码,如果获取失败&#x…

HTML代码转换编辑器

软件截图 软件说明 软件名称:HTML代码转换编辑器 版本:v1.0 开发语言:C# .Net framework3.5 下载地址:http://download.csdn.net/detail/lecepin/9417174 博客名称:王乐平博客 博客地址:http://blog.le…

系统时间校准工具

软件截图 软件说明 软件名称:系统时间校准 版本:v1.0 开发语言:易语言 软件说明:方便电脑系统时间不正确,每次启动时间都重置等时间不正确的情况,提供时间校准的方便。校准时间均为世界标准时间同步网络…

系统关机助手

软件截图 软件说明 软件名称:系统关机助手 版本:v1.0 开发语言:易语言 软件说明:方便关机、重启、注销等操作的小软件,欢迎使用。 下载地址:http://download.csdn.net/detail/lecepin/9418082 博客名称&a…

poj1703

题目大意:一共有两个类,两种操作D X Y表示X Y在不同的类里面,A X Y 询问X Y之间的关系(未知,相同,不同) 分析:简单带权并查集,D[i]表示与i对立的类,维护好这个变量就可以了。 1 #inc…

SEO原创文章制作器

软件截图 软件说明 软件名称:SEO原创文章制作器 版本:v1.0 开发语言:易语言 软件说明:SEO福利工具,可直接从网上将内容复制到本软件,然后生成文字不一样但意思一样的原创文本。 此软件可以设置原创级别。…

水星MW300R v2 路由器刷DD-Wrt 小记

家里有一个水星MW300R v2 的路由器,之前在这个路由器上刷过OpenWrt(可参照我这个博文:http://wlpblog.blog.163.com/blog/static/217614257201511252554386/),后来刷回了原系统。最近发觉这个路由器系统有点问题&#…

ns,ui

转:http://blog.csdn.net/fengsh998/article/details/8842885 Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。 1、Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境。 是什么因素使一个程序成为…

Android手机调整/data分区和/sdcard分区

现在手上有一块E160K的手机,手机内存是32GB的,由于之前对这个手机刷机不当,造成用户分区20GB多,而内置SD仅仅只有5GB多,造成了严重的资源浪费,所以我需要把这两个分区的大小调整一下。 问题分析&#xff1a…