屏幕适配

概念


  • pixel:像素点,一个发光点,代码中概念
  • pt: point 点 1/72inch px = pt*(ppi/72),屏幕显示的概念
  • horizontal: 水平
  • vertical: 垂直
  • diagonal: 对角线
  • scale:缩放因子
  • PPI (Pixel Per Inch):每英寸像素点的个数
  • DPI(Dots Per Inch):每英寸像素点的个数
  • inch:英寸,每英寸等于2.54厘米
  • 逻辑像素
    • 在编程的时候用的坐标点
    • 产生于iPhone3GS,把320*480point显示在320*480pixel屏幕上
  • 渲染像素
    • 经过GPU放大处理后的像素
    • 产生于iPhone4,将逻辑像素放大2倍,把320*480point显示在640*960pixel屏幕上
  • 物理像素 (device pixels)
    • 经过一系列处理最终显示在屏幕的像素,实际上,缩放因子为2倍的设备的渲染像素就是物理像素,到了Plus系列上才出现了物理像素与渲染像素之分
    • 产生于iPhone6P/6sP/7P,从逻辑像素放大3倍,把414*736point转换为1242*2208piexl,再从渲染像素缩小1.15倍,23个像素点放在20个像素点上显示,物理比例是渲染比例的86%,显示在1080*1920分辨率
  • 三基色
    • 合成其他光最基本的颜色
    • 红绿蓝
    • 本身发光
  • 三原色
    • 不发光物体色彩中不能再分解的基本颜色,见英国化学家富博斯特
    • 红黄青,教科书上说是红绿蓝,实际上市红黄青
    • 本身不发光
    • 灰色能够被红黄青合成,但是无论如何黑色不能被合成
  • 屏幕分辨率
    • DV:480×720
    • 视网膜/高清/HD: 720×1280
    • 全高清/QHD: 1080×1920
    • 2K:1152×2048 (iPhone的Plus系列实际上是达到2K级别了,但是经过1.15倍的缩放之后只有全高清的效果)
    • 4K:2160×4096(目前只有索尼Z5P 2015年10月 2560*3860 806ppi 5.2inch)
  • 显示技术
    • 苹果Retina,即俗称的视网膜显示技术,将更多像素点压缩到屏幕,肉眼无法分辨其单独像素,iPhone/iTouch压缩像素密度达到或高于300ppi不再出现颗粒感;iPad:260ppi,Mac:200ppi
    • 苹果双域像素,产生于iPhone6,子像素倾斜排列,产生侧视屏幕得到更广的可视角度
    • 三星Pentile,子像素只有红绿排列或者蓝绿排列,临接像素共享另外一个子像素,使得子像素数量缩减1/3,色彩显示效果不减,像素密度得到提高

坐标空间


  • 二维空间坐标系
    • X轴平行于屏幕,正方向向右
    • Y轴平行于屏幕,正方向向下
  • 三维空间坐标系
    • X轴平行于屏幕,正方向向右
    • Y轴平行于屏幕,正方向向下
    • Z轴垂直于屏幕,正方向向外,即更靠近用户的视线

适配技术


  • iOS 4 –––– Autoresizing
    • Autoresizing 的核心思想就是:参照父容器来设置子控件的 frame,不再写死 frame
    • 缺陷:Autoresizing 只能控制父子控件之间的位置关系,对于兄弟关系,束手无策
  • iOS 6 —— Auto Layout(自动布局)
    • 随着 iPhone5 \ iPhone5s 的发布,苹果设备的屏幕尺寸变化越来越多, 不仅要求能控制父子控件的位置关系,也要求能控制任意控件之间的位置关系,Auto Layout产生了
    • Auto Layout 主要解决的问题:控件位置的参照关系不再局限于父控件
  • iOS 8 —— Size Classes + Auto Layout
    • iPhone6 发布以后,为了能更容易的适配不同的屏幕,苹果推出了 Size Classes 技术
    • 通过 Auto Layout 设置的约束,各种不同的屏幕都会使用相同的约束
    • 通过 Size Classes + Auto Layout, 可以为不同尺寸的屏幕设置不同的约束
      例如: 计算器,在iPhone的横屏、竖屏下的不同表现,和在iPhone和iPad下不同的表现
    • Size Classes 主要解决的问题: iPhone横竖屏适配及iPhone和iPad开发时共用一个SB的问题
  • iOS 9 —— Size Classes + Auto Layout + StackView
    • StackView 的核心便是方便垂直或水平排布多个 subview,类似于 android 的 LinearLayout
    • StackView 最有用之处是它会自动为每个 subview 创建和添加 Auto Layout 约束,程序员可以
      通过选项配置subview的大小、排布以及彼此间的间距
    • stackview 主要解决的问题: 简化在线性方向上,重复设置控件布局约束的问题
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “STC单片机电压测量”是一个以STC系列单片机为基础的电压检测应用案例,它涵盖了硬件电路设计、软件编程以及数据处理等核心知识点。STC单片机凭借其低功耗、高性价比和丰富的I/O接口,在电工程领域得到了广泛应用。 STC是Specialized Technology Corporation的缩写,该公司的单片机基于8051内核,具备内部振荡器、高速运算能力、ISP(在系统编程)和IAP(在应用编程)功能,非常适合用于各种嵌入式控制系统。 在源代码方面,“浅雪”风格的代码通常简洁易懂,非常适合初学者学习。其中,“main.c”文件是程序的入口,包含了电压测量的核心逻辑;“STARTUP.A51”是启动代码,负责初始化单片机的硬件环境;“电压测量_uvopt.bak”和“电压测量_uvproj.bak”可能是Keil编译器的配置文件备份,用于设置编译选项和项目配置。 对于3S锂电池电压测量,3S锂电池由三节锂离电池串联而成,标称电压为11.1V。测量时需要考虑电池的串联特性,通过分压电路将高电压转换为单片机可接受的范围,并实时监控,防止过充或过放,以确保电池的安全和寿命。 在电压测量电路设计中,“电压测量.lnp”文件可能包含电路布局信息,而“.hex”文件是编译后的机器码,用于烧录到单片机中。电路中通常会使用ADC(模拟数字转换器)将模拟电压信号转换为数字信号供单片机处理。 在软件编程方面,“StringData.h”文件可能包含程序中使用的字符串常量和数据结构定义。处理电压数据时,可能涉及浮点数运算,需要了解STC单片机对浮点数的支持情况,以及如何高效地存储和显示电压值。 用户界面方面,“电压测量.uvgui.kidd”可能是用户界面的配置文件,用于显示测量结果。在嵌入式系统中,用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值