• 采用CSS3 Media Query技术适应Android平板屏幕分辨率和屏幕像素密度


             采用HTML5在开发移动应用程序满足各种需求Android分辨率和屏幕的平板设备密度,这是非常麻烦的过程,最终的解决方案是使用css media query,匹配相同的时间分辨率和屏幕像素密度。上进行兼容性測试,终于保证在多数Android平板上都能较好的显示。

     

             一个典型的针对设备的Css Media Query写法例如以下。能够保证页面高度充满屏幕,简单的设置height:100%是不行的。

    //SAMSUNG N5100, Nexus7 1,
    @media only screen
    and (min-device-height : 790px)
    and (max-device-height : 810px)
    and (-webkit-min-device-pixel-ratio: 1.3)
    and (-webkit-max-device-pixel-ratio: 1.4)
    and (orientation : landscape) {
      .nav-item{
        padding: $nav-item-iconSize + 12 3px 3px 0;
        &:before{
          top: 12px;
        }
      }
      body{
        height: 601px;
      }
      .category-content,
      .category-content-2,{
        .category-list{
          padding: 10px 10px;
          .list-item{
            margin: 10px 15px;
          }
        }
      }
    }

    以下是适配时收集的各种平板的分辨率数据,细致研究还是能发现不少问题的,能够看出假设分辨率是1280*800,屏幕密度是1.33125。那么相应css中的高度应该是600.99px。底部虚拟按键占48px。有了这些数据就能够做屏幕适配了。


    三星 N5100平板,android4.4

    07-15 11:12:56.316: E/metrics.density(23926): DisplayMetrics{density=1.33125, width=1280, height=800, scaledDensity=1.7306249, xdpi=189.02325, ydpi=188.14815}


    07-15 11:16:33.296: I/Web Console(25284): devicePixelRatio= 1.3312499523162842 screen.width=1280 screen.height=800  window.outerWidth1280:79


    三星 GT-5110

    07-22 10:06:13.662: E/metrics.density(3438): DisplayMetrics{density=1.0, width=1280, height=752, scaledDensity=1.0, xdpi=149.82489, ydpi=149.41176}


    07-22 10:06:17.037: I/Web Console(3438): devicePixelRatio= 1 screen.width=1280 screen.height=800  window.outerWidth1280:89



    华为Media pad 10 fhd


    07-22 12:12:34.501: E/metrics.density(29949): DisplayMetrics{density=1.5, width=1920, height=1128, scaledDensity=1.9499999, xdpi=224.73732, ydpi=224.11765}


    07-22 12:12:36.824: I/Web Console(29949): devicePixelRatio= 1.5 screen.width=1920 screen.height=1200  window.outerWidth1920 at file:///android_asset/www/js/app.js:89


    联想 S5100

    07-22 14:07:45.107: E/metrics.density(2541): DisplayMetrics{density=1.3312501, width=1280, height=736, scaledDensity=1.3312501, xdpi=213.0, ydpi=213.0}


    华为X1

    07-23 13:41:30.180: E/metrics.density(13387): DisplayMetrics{density=2.0, width=1824, height=1200, scaledDensity=2.0, xdpi=324.255, ydpi=322.966}


    07-23 13:41:32.870: I/Web Console(13387): devicePixelRatio= 2 screen.width=1200 screen.height=1920  window.outerWidth1824 at file:///android_asset/www/js/app.js:89


    版权声明:本文博主原创文章,转载请保留源http://blog.csdn.net/offbye

  • 相关阅读:
    C++ 类或函数导出lib的两种方式
    Qt 中文乱码原因以及解决方法
    AStyle Clion中配置代码格式化工具(附:博主最满意格式)
    nltk中meteor_score的计算,报错
    Ubuntu20重装nvidia驱动
    No input file specified,php+Nginx,报错处理
    「cocos2dx」动画创建笔记
    「cocos2dx」物理引擎学习之box2D(1)
    golang_listen3_time
    face_to_face
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4814001.html
Copyright © 2020-2023  润新知