作家
登录

一种粗暴快速的Android全屏幕适配方案

作者: 来源: 2017-08-14 09:14:26 阅读 我要评论

  •             return value; 
  •         case COMPLEX_UNIT_DIP: 
  •             return value * metrics.density; 
  •         case COMPLEX_UNIT_SP: 
  •             return value * metrics.scaledDensity; 
  •         case COMPLEX_UNIT_PT: 
  •             return value * metrics.xdpi * (1.0f/72); 
  •         case COMPLEX_UNIT_IN: 
  •             return value * metrics.xdpi; 
  •         case COMPLEX_UNIT_MM: 
  •             return value * metrics.xdpi * (1.0f/25.4f); 
  •         } 
  •         return 0; 
  •     }  
    • 可以看见换算办法异常简单,而DisplayMetrics的所有属性都是public的,不消反射就能修改;
    • 而这个DisplayMetrics大年夜哪来?大年夜源码中可以看出一般为mContext.getResources().getDisplayMetrics(),这个mContext即为地点Activity;
    • Activity中所拿到的DisplayMetrics与Application中拿到的DisplayMetrics固然不是一个实例,然则所稀有值都雷同,在Application中进行更改也会影响到所有Activity中;
    • 反正屏切换等Configuration的变更会导致DisplayMetrics的从新计算还原,须要从新处理;
    • px,dp与sp都是日常平凡常用的单位,而pt,in与mm几乎没有看见过,大年夜这些不常见的单位下手正好可以不影响其他常用的单位;
    • pt的原意是长度单位磅,根据当前屏幕与设计图尺寸将metrics.xdpi进行修改就可以实现将pt这个单位重定义成我们所须要的相对长度单位,使修改之后计算出的1pt实际对应的px/屏幕宽度px=1px/设计图宽度px。

    基于以上几点,遍有了以下筹划。

    三、筹划

    适配的目标是:完全按照设计图上标注的尺寸来编写页面,所编写的页面在所有大年夜小与分辨率的屏幕上都表示一致,即控件在所有屏幕上相对于全部屏幕的相对大年夜小都一致(看起来只是将设计图缩放至屏幕大年夜小)。

    • 核心。应用冷门的pt作为长度单位。
    • 绘制。编写xml时完全对比设计稿上的尺寸来编写,只不过单位换为pt。 如不雅须要在代码中动态转换成px的话,应用TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PT, value, metrics)。
    • 预览。及时预览时绘制页面是很重要的一个环节。以1334×750的设计图为例,为了实现于正常绘制时一样的预览功能,创建一个长为1334磅,宽为750磅的设备作为预览,经换算约为21.5英寸((sqrt(1334^2+750^2))/72)。预览时选择这个设备即可。

    1. public class MyApplication extends Application{ 
    2.  
    3. public final static float DESIGN_WIDTH = 750; //绘制页面时参照的设计图宽度 
    4.  
    5. @Override 
    6. public void onCreate() { 
    7.     super.onCreate(); 
    8.  
    9.     resetDensity(); 
    10.  
    11. @Override 

    12.   推荐阅读

        Linux自带i2c工具使用

      I2C总线被全球跨越50个公司的1000+个ICs所应用,已然是一个世界标准.别的,I2C总线与多种不合的┞菲握总线是兼容的,比如SMBus(体系治理总线),PMBus(电源治理总线),IPMI(智能平台治理总线),D>>>详细阅读


      本文标题:一种粗暴快速的Android全屏幕适配方案

      地址:http://www.17bianji.com/lsqh/36666.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)