草庐IT

Android Activity横竖屏切换生命周期

面试被问到横竖屏切换时Activity的生命周期,正好记录一下验证过程~横竖屏切换涉及到的是Activity的android:configChanges属性,而与其android:launchMode属性没有关系;android:configChanges可以设置的属性值有:orientation:消除横竖屏的影响keyboardHidden:消除键盘的影响screenSize:消除屏幕大小的影响验证步骤新建Activity,重写各个生命周期方法:publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCr

Android Activity横竖屏切换生命周期

面试被问到横竖屏切换时Activity的生命周期,正好记录一下验证过程~横竖屏切换涉及到的是Activity的android:configChanges属性,而与其android:launchMode属性没有关系;android:configChanges可以设置的属性值有:orientation:消除横竖屏的影响keyboardHidden:消除键盘的影响screenSize:消除屏幕大小的影响验证步骤新建Activity,重写各个生命周期方法:publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCr

uni-app实现微信小程序横屏适配问题

1.小程序如何横屏在手机上启用屏幕旋转支持从小程序基础库版本2.4.0开始,小程序在手机上支持屏幕旋转。使小程序中的页面支持屏幕旋转的方法是:在app.json的window段中设置"pageOrientation":"auto",或在页面json文件中配置"pageOrientation":"auto"。以下是在单个页面json文件中启用屏幕旋转的示例。代码示例:{"pageOrientation":"auto"}如果页面添加了上述声明,则在屏幕旋转时,这个页面将随之旋转,显示区域尺寸也会随着屏幕旋转而变化。从小程序基础库版本2.5.0开始,pageOrientation还可以被设置为lan

uni-app实现微信小程序横屏适配问题

1.小程序如何横屏在手机上启用屏幕旋转支持从小程序基础库版本2.4.0开始,小程序在手机上支持屏幕旋转。使小程序中的页面支持屏幕旋转的方法是:在app.json的window段中设置"pageOrientation":"auto",或在页面json文件中配置"pageOrientation":"auto"。以下是在单个页面json文件中启用屏幕旋转的示例。代码示例:{"pageOrientation":"auto"}如果页面添加了上述声明,则在屏幕旋转时,这个页面将随之旋转,显示区域尺寸也会随着屏幕旋转而变化。从小程序基础库版本2.5.0开始,pageOrientation还可以被设置为lan

IOS横竖屏以及适配

目录一、最让人纠结的三种枚举二、两种屏幕旋转的触发方式三、屏幕旋转控制的优先级四、开启屏幕旋转的全局权限五、开启屏幕旋转的局部权限(视图控制器)六、实现需求:项目主要界面竖屏,部分界面横屏七、默认横屏无效的问题八、关于旋转后的适配问题九、APP启动即全屏一、最让人纠结的三种枚举刚开始接触屏幕旋转这块知识的时候,最让人抓狂的也许就是三种相关的枚举类型了,它们就是UIDeviceOrientation、UIInterfaceOrientation、UIInterfaceOrientationMask。下面我们针对三种属性进行解析:1.设备方向:UIDeviceOrientationUIDevice

IOS横竖屏以及适配

目录一、最让人纠结的三种枚举二、两种屏幕旋转的触发方式三、屏幕旋转控制的优先级四、开启屏幕旋转的全局权限五、开启屏幕旋转的局部权限(视图控制器)六、实现需求:项目主要界面竖屏,部分界面横屏七、默认横屏无效的问题八、关于旋转后的适配问题九、APP启动即全屏一、最让人纠结的三种枚举刚开始接触屏幕旋转这块知识的时候,最让人抓狂的也许就是三种相关的枚举类型了,它们就是UIDeviceOrientation、UIInterfaceOrientation、UIInterfaceOrientationMask。下面我们针对三种属性进行解析:1.设备方向:UIDeviceOrientationUIDevice

iOS离屏渲染

界面渲染UIView继承自UIResponder,可以处理系统传递过来的事件,如:UIApplication、UIViewController、UIView,以及所有从UIView派生出来的UIKit类。每个UIView内部都有一个CALayer提供内容的绘制和显示,并且作为内部RootLayer的代理视图。下图为CALayer的结构图:CALayer.pngRunLoop有一个60fps的回调,即每16.7ms绘制一次屏幕,所以view的绘制必须在这个时间内完成,view内容的绘制是CPU的工作,然后把绘制的内容交给GPU渲染,包括多个View的拼接(Compositing)、纹理的渲染(T

iOS离屏渲染

界面渲染UIView继承自UIResponder,可以处理系统传递过来的事件,如:UIApplication、UIViewController、UIView,以及所有从UIView派生出来的UIKit类。每个UIView内部都有一个CALayer提供内容的绘制和显示,并且作为内部RootLayer的代理视图。下图为CALayer的结构图:CALayer.pngRunLoop有一个60fps的回调,即每16.7ms绘制一次屏幕,所以view的绘制必须在这个时间内完成,view内容的绘制是CPU的工作,然后把绘制的内容交给GPU渲染,包括多个View的拼接(Compositing)、纹理的渲染(T

浅析iOS离屏渲染原理实现

1GPU渲染机制:CPU计算好显示内容提交到GPU,GPU渲染完成后将渲染结果放入帧缓冲区framebuffer,随后视频控制器会按照VSync信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示。GPU屏幕渲染有以下两种方式:●1)On-ScreenRendering,意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。●2)Off-ScreenRendering,意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。特殊的离屏渲染:如果将不在GPU的当前屏幕缓冲区中进行的渲染都称为离屏渲染,那么就还有另一种特殊的“离屏渲染”方式:CP

浅析iOS离屏渲染原理实现

1GPU渲染机制:CPU计算好显示内容提交到GPU,GPU渲染完成后将渲染结果放入帧缓冲区framebuffer,随后视频控制器会按照VSync信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示。GPU屏幕渲染有以下两种方式:●1)On-ScreenRendering,意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。●2)Off-ScreenRendering,意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。特殊的离屏渲染:如果将不在GPU的当前屏幕缓冲区中进行的渲染都称为离屏渲染,那么就还有另一种特殊的“离屏渲染”方式:CP