当前位置: 首页 > 科技观察

FullScreenAbility(Java)

时间:2023-03-14 17:23:05 科技观察

forHarmonyOS官方模板学习更多内容请访问:https://harmonyos.51cto.comFullScreenAbility(Java)介绍及使用Java语言开发,Phone设备FeatureAbility模板,使用XML布局。为开发者提供一个全屏页面的示例工程,使用Image组件,实现横竖屏的切换,保持全屏显示。搭建环境,安装DevEcoStudio。详见DevEcoStudio下载。搭建DevEcoStudio开发环境。DevEcoStudio开发环境依赖于网络环境。需要联网才能保证工具的正常使用。开发环境可根据以下两种情况进行配置:如果可以直接上网,只需要下载HarmonyOSSDK即可运行。如果网络不能直接访问Internet,则需要通过代理服务器访问。请参考配置开发环境。卡片布局其实有2个布局文件来实现这个效果,land_main.xml#横屏布局文件,port_main.xml#竖屏布局文件布局文件对比,有2个不同,1.最外层DirectionalLayout布局的朝向,horizo??ntal屏幕值设置为horizo??ntal,垂直屏幕值设置为vertical2。横屏布局bottom_margin/top_margin设置为0,竖屏布局left_margin/right_margin设置为0。windowsign。您可以从WindowManager.LayoutConfig获取当前支持的标志。然后根据手机的方向加载不同的布局文件。@OverridepublicvoidonStart(Intentintent){super.onStart(intent);//hidestatusbarHiLog.debug(LABEL,"添加窗口标志,全屏模式,隐藏的状态栏和面板可以延伸到屏幕外。");this.getWindow().addFlags(WindowManager.LayoutConfig.MARK_ALLOW_EXTEND_LAYOUT);this.getWindow().addFlags(WindowManager.LayoutConfig.MARK_FULL_SCREEN);//自适应//0:PORTRAIT,1:LANDSCAPEintorientation=getResourceManager(getConfiguration().direction;HiLog.debug(LABEL,"从资源管理配置获取方向:%{public}s,加载布局文件",orientation==0?"PORTRAIT":"LANDSCAPE");if(orientation==Configuration.DIRECTION_HORIZONTAL){super.setUIContent(ResourceTable.Layout_land_main);}else{super.setUIContent(ResourceTable.Layout_port_main);}}2.当屏幕显示方向改变时重新加载布局文件,这里和启动时不同,使用AbilityInfo。DisplayOrientation和AbilityInfo.DisplayOrientation.LANDSCAPE来判断。@OverrideprotectedvoidonOrientationChanged(AbilityInfo.DisplayOrientationdisplayOrientation){super.onOrientationChanged(displayOrientation);if(displayOrientation==AbilityInfo.DisplayOrientation.LANDSCAPE){HiLog.debug(LABEL,"手机方向改变了,改为:%{public}s,重新加载布局文件","LANDSCAPE");setUIContent(ResourceTable.Layout_land_main);}else{HiLog.debug(LABEL,"手机方向变为:%{public}s,重新加载布局文件""PORTRAIT");setUIContent(ResourceTable.Layout_port_main);}}java版的逻辑比较简单。看了js版的案例,支持的设备类型更多,处理逻辑也不一样。tv和wearable没有横竖屏之分,尺寸相差也比较大,用的是两张不同尺寸的图片。核心关键是利用css通过display控制显示和隐藏,以适应不同的设备。效果展示文章相关附件可点击下方链接下载原文链接:https://harmonyos.51cto.com/posts/4776更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com