zoukankan      html  css  js  c++  java
  • 屏幕适配 部分知识点总结,CSDN小冰原创

    /** * 作者:David Zheng on 2015/11/7 15:38 * * 

    网站:http://www.93sec.cc * *

     微博:http://weibo.com/mcxiaobing * * 

    微博:http://weibo.com/93sec.cc */ 个人交流QQ986945193
    屏幕适配简介(了解)
    • Android的屏幕有大有小,为了对不同大小屏幕的设备提供最好的体验,需要对不同大小的设备进行不同的设计,让他们产生的效果一样的。
    • 进入友盟:http://www.umeng.com/   ,专门提供移动端数据统计的网站。查看Android屏幕设备,以及分辨率指数,发现android中的屏幕碎片化太严重。
    • 所以我们只要尽量适配这几种分辨率,就可以在大部分的手机上正常运行了。

    屏幕适配中几个重要的概念 ( 记忆 )
    • 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?
      • 屏幕尺寸:屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米
      • 屏幕分辨率:横纵向上的像素点数,单位是px,1px=1个像素点   (屏幕适配和它没有关系)
      • 屏幕像素密度:每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。 (屏幕适配和dpi有关系)
    • 什么是dp、dip、dpi、px?他们之间的关系是什么?
      • px:其实就是像素UI设计、Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等。
      • dp,dip和dpi:Density Independent Pixels ,也就是密度无关像素。每个英寸上的像素点

    • 什么是mdpi、hdpi、xdpi?如何计算和区分?
      • mdpi (medium-density) :   每个英寸约占160dpi。这个是基准线dpi
      • hdpi (high-density):每个英寸约占240dpi。
      • xhdpi(extra high-density):每个英寸约占320dpi。
      • xxhdpi (extra-extra-high-density ) : 每个英寸约占480dpi
    • 缩放因子:(原理性东西,理解)
      • ldpi : mdpi : hdpi : xhdpi : xxhdpi=3:4:6:8  : 12
      • icon图标的计算:  
        •  基准线是 mdpi,图标为:48*48
        •  ldpi :   0.75*48=36  所以 为  36*36
        •  hdpi:   72*72
        • xhdpi:   96*96
            


    屏幕适配的几种方式(理解记忆)   
    • 图片适配(不是很常用)在res目录下,分别有这些mdpi、hdpi、xdpi、xxdpi 对应的文件夹。
      通过在这些不同的文件夹下,放入不同的图片,不同的手机会自动加载相应的图片,以达到屏幕适配。但是这种不太常用,因为图片比较暂用存储空间,打出来的apk包也会相应的变大。所以一般只用一套主流的图片,或者对各别有问题的图标进行适配。

    • 布局适配(不常用)
      • 比如有一个主流分辨率的手机加载布局后,UI效果很差,我们就可以使用布局适配
      • 语法:大的数字写到前面,小的数字写到后面,中间是x连接
      • 举个栗子:layout-1280x720
      • 没图说个**:
    • dimens适配(尺寸适配)(常用)
      • 不同values下写dimens,以便达到尺寸适配
      • 举个例子:values-1280x720
      • 图片说明:

    • 权重适配(常用)

    • 代码适配(常用)
      • 获得屏幕的宽高
      • 计算出控件所占屏幕的比例
      • 根据比例动态设置控件的宽高
      • 举个例子:
                        //获得屏幕的宽高
                      DisplayMetrics displayMetrics = new DisplayMetrics();   
                      getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
                      int heightPixels = displayMetrics.heightPixels;
                      int widthPixels = displayMetrics.widthPixels;
    程序员小冰博客:http://blog.csdn.net/qq_21376985 技术交流QQ986945193 微博:http://weibo.com/mcxiaobing
  • 相关阅读:
    Struts2+Spring3+Mybatis3开发环境搭建
    spring+struts2+mybatis
    【LeetCode】Populating Next Right Pointers in Each Node
    【LeetCode】Remove Duplicates from Sorted Array
    【LeetCode】Remove Duplicates from Sorted Array II
    【LeetCode】Binary Tree Inorder Traversal
    【LeetCode】Merge Two Sorted Lists
    【LeetCode】Reverse Integer
    【LeetCode】Same Tree
    【LeetCode】Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/mcxiaobing/p/5472124.html
Copyright © 2011-2022 走看看