• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cynchanpin

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

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);


阅读全文
顶
2
踩
0
 
 
  • 上一篇Android NDK 开发+cygwin 的安装 +eclipse cygwin配置
  • 下一篇SQLite 经常使用语句 sql语句
查看评论
* 以上用户言论仅仅代表其个人观点。不代表CSDN站点的观点或立场

android res文件夹下存放图片文件夹 i m h xh xxh

l:320*240 m:320*480 h:800*480 xh:1280*720 xxh:1950*1080
  • aaawqqq
  • aaawqqq
  • 2013-09-17 17:25
  • 7863

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

手机常见分辨率: 4:3 VGA     640*480 (Video Graphics Array) QVGA  320*240 (Quarter VGA) HVGA  480*320 (Half-...
  • sarsscofy
  • sarsscofy
  • 2013-07-05 10:17
  • 238034

Android屏幕大小适配问题解决

一、一些基本概念 1、长度(真实长度):英寸、inch 2、分辨率:density 每英寸像素数  dpi(密度) 3、像素:px 4、dip的公式:px /dip=dpi/160  所以 d...
  • u014077888
  • u014077888
  • 2014-05-17 22:58
  • 3083

Android屏幕大小适配问题解决

ps:建议先看上一篇文章:http://blog.csdn.net/u011695847/article/details/9981143 一、一些基本概念 1、长度(真实长度):英寸、inch ...
  • u011695847
  • u011695847
  • 2013-08-15 12:15
  • 1265

android 屏幕适配问题

屏幕适配问题" title="android 屏幕适配问题" height="396" width="255"> 怎样将一个应用程序适配在不同的手机上,尽管这不算是一个技术问题。可是对于刚刚...
  • zxciop110
  • zxciop110
  • 2013-02-25 15:00
  • 1713

Android屏幕大小适配问题解决

一、一些基本概念 1、长度(真实长度):英寸、inch 2、分辨率:density 每英寸像素数  dpi(密度) 3、像素:px 4、dip的公式:px /dip=dpi/1...
  • dianyueneo
  • dianyueneo
  • 2015-05-13 13:09
  • 748

Android屏幕大小适配问题解决

ps:建议先看上一篇文章:http://blog.csdn.net/u011695847/article/details/9981143 一、一些基本概念 1、长度(真实长度):英寸、inch ...
  • u011695847
  • u011695847
  • 2013-08-15 12:15
  • 1265

android开发怎样更好的解决适配不同屏幕大小移动设备的问题

解决问题的办法网上有非常多。经过不断的查找资料、尝试、寻求帮助后。经过尝试之后初步整理出一种解决方法:理论的东西我就不多说了。主要说一下怎样实现的问题 我主要介绍,通过drawable,layout...
  • suijing
  • suijing
  • 2013-12-26 14:38
  • 1128

iOS开发屏幕适配问题解决方式

屏幕适配问题共同拥有四种解决方式:(1)依据屏幕宽高写控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+Auto...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015-07-26 01:07
  • 2656

Cocos2dx屏幕分辨率适配问题解决

我直接简单粗暴点讲好了: 主要是下面三行代码: static cocos2d::Size designResolutionSize = cocos2d::Size(320, 568);...
  • La_vie_est_belle
  • La_vie_est_belle
  • 2017-02-09 21:01
  • 204
高速回复 TOP
    我的链接
    我的Github 我的开发人员头条独家号 我的DockerHub 原创视频教程 个人业余项目

    天盟
    联系我
    博客专栏
    图说Android

    文章:4篇

    阅读:1779
    文章搜索
    文章分类
  • Android(41)
  • Java(20)
  • iOS(5)
  • Linux(1)
  • 数据结构与算法(3)
  • 设计模式(5)
  • 计算机网络(3)
  • 数据库(0)
  • Web开发(3)
  • 原创视频(5)
  • Git(3)
  • Github原创库(9)
  • 读书笔记(2)
  • 其它(7)
    阅读排行
  • Activity 获取 view getContentView(8953)
  • 修复 Universal-image-loader 的几个Bug(6755)
  • 使用 buck 打包 Android( 使用OkBuck给Android Studio+gradle生成 buck 脚本)(4071)
  • 自己定义控件-MultipleTextView(自己主动换行、自己主动补齐宽度的排列多个TextView)(3367)
  • Android屏幕大小适配问题解决(3079)
  • Android Ant 和 Gradle 打包流程和效率对照(3063)
  • 三星i9300i线刷港行4.4(国行也能刷)+ 刷TWRP + root(刷机、救砖教程亲測)(2834)
  • 三星Samsung 4.4.2官方系统精简列表(2786)
  • 自己定义控件-LinearListView(2784)
  • Windows Server 2003搭建邮件server(2767)
    评论排行
  • 修复 Universal-image-loader 的几个Bug(9)
  • 自己定义控件-MultipleTextView(自己主动换行、自己主动补齐宽度的排列多个TextView)(3)
  • 自己定义控件-LinearListView(2)
  • Android 性能优化工具 Traceview和dmtracedump(1)
  • Android屏幕大小适配问题解决(1)
  • 使用 buck 打包 Android( 使用OkBuck给Android Studio+gradle生成 buck 脚本)(1)
  • Android JNI 获取应用签名(1)
  • 初学iOS 新建project 视频教程(0)
  • Struts + Spring + Hibernate 视频教程(0)
  • Eclipse egit 的使用(0)
    最新评论
  • 自己定义控件-MultipleTextView(自己主动换行、自己主动补齐宽度的排列多个TextView)

    itTalmud: @liuxj_123hb_zx:能够的

  • VPS经常使用配置:lnmp、vpn、Shadowsocks、ftp、jdk、tomcat安装

    u014077888: 兴许补充

  • 自己定义控件-MultipleTextView(自己主动换行、自己主动补齐宽度的排列多个TextView)

    liuxj_123hb_zx: Activity里面能够使用。在Fragment里面就不行了,一行仅仅显示一个,即使这个文本的长度非常短...

  • 使用 buck 打包 Android( 使用OkBuck给Android Studio+gradle生成 buck 脚本)

    jcy2sls: Buck for IDEA 这个软件怎么用啊?

  • Android屏幕大小适配问题解决

    wangtao0921: mark

  • Android JNI 获取应用签名

    WXY9206: 没有评论?

  • 自己定义控件-MultipleTextView(自己主动换行、自己主动补齐宽度的排列多个TextView)

    thomaswood: 控件写的不赖,拿来就能用。赞一个

  • Android 性能优化工具 Traceview和dmtracedump

    qq_18720125: 简洁明了

  • 修复 Universal-image-loader 的几个Bug

    u013936790: 你好 版主第二个BUG该怎样修复啊

  • 修复 Universal-image-loader 的几个Bug

    u014077888: @u013029594:谢谢你的关注。

收藏助手

posted on 2018-01-11 19:02  cynchanpin  阅读(487)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3