屏幕的适配


一,为什么要进行屏幕的适配

          安卓手机屏幕尺寸种类繁多。同一程序要在不同尺寸手机上运行到良好的效果,实现相同的功能。如果给每一尺寸的手机编写一套程序,这无疑是不可能的。所以,要进行屏幕适配。不同分辨率手机所占的比例。

        

二,相关概念

   1>尺寸            手机屏幕的对角线长度(英寸为单位)1英寸=2.54cm

  2>分辨率         横纵向上的像素点数 单位:px

  3>像素密度     每英寸上的像素密度dpi(dot per inch) 计算:分辨率:1920*1080 尺寸4.95 dpi =                                                     (1920*1920+1080*1080)开方/4.95

  4>像素px        构成图像最小单位

  5>dpi dp         密度无关像素

  6>sp               根据文字大小选项进行放缩(12sp以上,首选 12,14,18,22)

  7>mdpi hdpi xhdpi xxhdpi  xxxhdpi


三,屏幕适配的一些方法

    1>支持各种屏幕尺寸

         

  

    2>使用Weight

         Weight 计算出来的长度 = 原来的宽度 + 所占剩余百分比的宽度

          Eg1:weight设置为1,width设置为0dp(wrap_content也可以)

             

        Eg2:weight设置为1,width设置为match_parent

           

         Eg2计算过程: L=L + (L-2L)*1/3 = 2/3L

     3>尽量使用相对布局(但要根据具体情况而定)

     4>使用large限定符(尺寸限定)

           3.2版本之前实用,在res文件夹下,重新创建一个文件夹layout-large(布局文件取相同的名字)

          


          

     5>最小限定符(屏幕宽度限定)

         3.2之后版本实用,在res文件夹下,重新创建一个文件夹layout-600sw(布局文件取相同的名字,600是自己设          定的)

          


        

   

     6>使用别名布局

         1,在res下建不同布局文件

             res/layout/main.xml        单面板布局

             res/layout/main_twopanes.xml 双面板布局(大分辨率使用)

         2.在res/values文件夹下,创建resource文件layout.xml(名字都是main,@里面的资源就是你的布局文件)

            res/values/layout.xml:

             <resources>

                <item name="main"type="layout">@layout/main</item>

             </resources>


           Android3.2之前的平板布局 

         在res/values-large文件夹下(没有就创建一个),创建resource文件layout.xml(名字都是main,@里面的 资源就是你的布局文件)       

         res/values-large/layout.xml:

           <resources>

               <item name="main"type="layout">@layout/main_twopanes</item>

           </resources>

 

          Android3.2之后的平板布局

在res/values-sw600dp文件夹下(没有就创建一个,600dp是自己写入的,即最小尺寸,也就是说超过了这个 尺寸,就加载这个布局),创建resource文件layout.xml(名字都是main,@里面的资源就是你的布局文件)

           res/values-sw600dp/layout.xml:

            <resources>

              <item name="main"type="layout">@layout/main_twopanes</item>

           </resources>


       3. 在oncreate方法中,加载布局是setContentView要改成:setContentView(R.layout.main);

 


 


7>屏幕方向限定符(即在屏幕横向和纵向的时候显示响应显示不同的布局)

    res/values-sw600dp-land/layouts.xml:

      <resources>

         <item name="main"type="layout">@layout/main_twopanes</item>

    </resources>


    res/values-sw600dp-port/layouts.xml:

    <resources>

       <item name="main"type="layout">@layout/main</item>

    </resources>

 8> .9图片的运用

      .9图片的制作工具在sdk/tools文件夹下

     上边 设置一像素决定左右拉伸不变形

     左边 设置一像素决定上下拉伸不变形

     右边和下边  内容承载的区域(在没有设置padding的情况下,内容与背景的padding也和这个有关系)

 9> 使用非密度制约像素

      把dp转成px。但这个和Google的的建议相违背,是情况而定。

 10>提供备用位图(即在mdpi hdpi xhdpi xxhdpi  xxxhdpi文件夹下尽可能的放入不同分辨率的相对应同一效果的位 图

     

  点击源码下载

    


    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值