android屏幕适配知识点

2018-02-26  本文已影响0人  迷失的胖子

屏幕适配的相关概念:

1.什么是屏幕尺寸,屏幕尺寸分辨率,屏幕像素密度

屏幕尺寸指屏幕的对角线的长度,单位:英寸 1英寸=2.54厘米

屏幕分辨率是指横向和纵向上的像素点数,单位是px,1px = 1个像素点, 一般以纵向像素横向像素 如:19801080

屏幕像素密度是指每英寸上的像素点数,单位是dpi,即dot per inch 的缩写
屏幕像素密度与屏幕尺寸和屏幕分辨率有关

密度计算:例如:sqrt(1080^2 + 1980^2)/屏幕尺寸

2.什么是dp,dip,sp,px?他们之间的关系?

dpi,dip:desity independent pixels的缩写,即密度无关像素以160dpi为基准,1dip = 1px 或者 1dp = 1px

sp:Scale-independent pixels:可以根据文字大小首选项进行缩放 google推荐使用偶数。

3.mdpi,hdpi, xdpi,xxdpi,xxxdpi 如何计算如何区分

名称 像素密度范围
mdpi 120dpi-160dpi
hdpi 160dpi-240dpi
xdpi 240dpi-320dpi
xxdpi 320dpi-480dpi
xxxdpi 480dpi-640dpi

解决方案

    1.支持各种屏幕尺寸   
            -使用wrap_content, match_parent,
            其中weight 只能使用LinearLayout,而且是先计算控件内容高度,然后将剩余的部分按照weight平分,然后控件的高度 = 控件内容高度+剩余高度*weight/weight总和

            -使用RelativeLayout

            -使用自动拉伸位图 .9图 
            其中 左上两边表示可拉伸区 右下两边表示显示内容的区域(在手机上主要是文字区域)

            -使用限定符
            其中使用最小宽度限定符 
            sw small Width(设备上最小的一条边)
            res/layout-sw600dp/???.xml   7寸屏
            res/layout-sw720dp/???.xml 10寸屏
            
            -使用布局别名
              <resources>
                <item name = "main" type="layout">@layout/main</item>
              </resources>
              <resources>
                <item name = "main" type="layout">@layout/main_towpage</item>
              </resources>
              activity中布局的设置
              setContentView(R.layout.main)
             -使用屏幕方向限定符
              其中水平方向:res/values-sw600dp-land/layout.xml
                      <resources>
                          item name = "main" type="layout">@layout/main_towpanes</item>
                      </resources>

                      垂直方向:res/values-sw600dp-port/layout.xml
                      <resources>
                          item name = "main" type="layout">@layout/main</item>
                      </resources>
上一篇下一篇

猜你喜欢

热点阅读