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

Harmonyos单向布局实现音乐播放UI

时间:2023-03-18 21:56:49 科技观察

更多内容请访问:Harmonyos.51cto.com/#zz本节我们将使用DirectionalLayout(单向排列布局,我们也可以称之为线性布局)来实现下面的UI图示例。UI图拆解一般我们从UI工程师那里拿到UI界面设计图后,上面会有很多属性,比如尺寸标注。当我们学会了所有的布局和组件后,我们就可以使用一种或多种布局和组件进行组合,实现复杂的界面效果。上面,我手动拖放了一个音乐播放界面。每个属性的值我都没有标注。只是用来学习DirectionalLayout布局的使用。不要在意它的美丽。首先,我们获取到之后,根据上面的标签信息和组件功能点等一系列参数,将整个UI界面图按照布局划分成多个模块占据父布局,然后编写具体的子组件信息按划分布局。根据用户的交互性,我将整个页面分为两部分,上半部分是展示类,下半部分是控件类。在底部的控制区,有一系列的操作按钮,排列整齐,居中。在上半部分的显示区域,我根据控件的类型,将区域分成了左右结构的两部分。左侧区域显示词曲作者头像,右侧区域显示歌曲信息。右侧的歌曲信息区分为上下两个区域。上方区域用于显示歌曲名称和歌词、作曲和主唱信息,下方区域显示歌词内容。LayoutOccupancy上面我们通过不同的功能和特性,将整个UI图拆解成了多个部分。现在我们将使用DirectionalLayout布局来进行具体的布局占用。①首先,我们将整个布局按照权重分为上下两个区域,上区域占4份,下区域占1份。②接下去我们进入上区域的左侧位置。③我们已经完成了上区左右布局的占用,接下来就是上区右侧歌词区的占用,即上层和下层的占用以上就是我们要拆解的UI图的代码布局,完善实际显示的控件,定义界面和实现UI图,我们开始按照上、下、左、右的顺序编写组件,我们可以看到,原图的左边是一个圆形的图片,用来展示歌曲创作者的头像。用来显示图片的组件是Image,在后面的章节会详细讲解,之前我们用DirectionalLayout和Text来放置占位符,为了让人看得出来,期间我们的代码写的比较啰嗦,在实际业务中,我们尽量采用最优的写法。讨论为什么已经设置了高度为match_parent,图片还是显示一半?它必须是114px吗?欢迎讨论!!!接下来我们要实现右边的歌词我们已经在信息布局中的组件的上层布局区域填充了组件,接下来我们将在下层布局区域填充组件。上面的文字说明我们目前是静态给定的,所以创建了多个Text组件。我们启动电视模拟器,运行一下,看看是不是和我们刚刚启动的UI画面相似(一些尺寸的差异暂时忽略)。为什么图片显示一半?我们在媒体中保存的图片应该低于32位颜色才能完全呈现。了解更多请访问:与华为官方共建鸿蒙科技社区https://harmonyos.51cto.com/#zz