十三、制作 iVX音乐分享小程序

功能介绍

通过前几节的学习,我们对完成一个应用已经有了一些自己的心得。在此再次再制作一个小的音乐小程序应用。该应用一共分为首页、榜单页、音乐分享页和音乐搜索页。

首页:

榜单内容页:

音乐分享页:

音乐搜索页:

我们先完成首页的页面制作,再逐步完成整个项目。

一、音乐分享小程序首页制作

首页一共分为顶部标题栏、搜索栏、海报栏以及榜单块:

在标题栏中为了简化结构,一共包括了顶部用户信息和音乐搜索框。首先新建一个行,命名为登录状态/搜索,在其下创建两个行一个命名为个人信息与音乐搜索:

将个人信息、音乐搜索的垂直对齐设置为居中,使其元素可以居中显示。

随后在个人信息行中创建 3 个行,用于显示左侧、中部、右侧信息,依次设置这些行的宽度为 10%、50%、40%:


随后在左侧行中添加一个图片,设置宽度为 100%,占据整个左侧行内容、中部行添加一个文本并且设置与坐标的左内边距为 10、右侧设置右内边距为 10、水平对齐靠右并往其中添加一个按钮:


随后将会显示如下效果:

接下来设置音乐搜索行的水平对齐为居中,往其内部添加一个搜索框,设置宽度为 90%:

最后标题栏呈现如下:

接下来完成一个广告图区,广告图需要插件一个行,设置其上、下、左、右内边距为10,随后往内部添加一个图片组件,设置图片组件的大小为 100% 即可:


当前页面显示效果如下:


最后完成榜单内容的制作,在此添加一个行命名为榜单内容,在榜单内容下添加两个行,命名为左侧和右侧:


设置榜单内容的左右内边距为 10,随后设置左侧与右侧的宽度分别为 38%与64%。接着往左侧列中添加一个图片,设置宽度为 100,右侧列中添加一个行,命名为歌名:

此时页面显示效果如下:

接下来往歌名行中添加 4 个如下对象树中的组件:


在此还需要设置右侧的竖直对齐方式为 space-between 均分:

随后我们再复制 3 个歌名列:

此时页面效果如下:

在此我们只需要复制 3 个内容行,更改图片内容即可:

二、音乐分享小程序榜单页制作

榜单内容页制作比较简单我们,可以查看一下页面所框选的内容分为几个块:


首先我们需要更改该页面的背景色为某个榜单颜色相近的颜色:

随后在榜单内容下创建一个标题行,标题行下创建一个信息列,在信息列下创建一个小标题行:

接着在小标题行中添加两个文本,一个内容为 iVX,另外一个内容为榜单:

此时页面呈现效果如下:

接着继续在列中创建一个文本和一个返回首页按钮:

此时的页面效果如下:

接下来继续创建该页面的内容区,创建一个行命名为歌曲内容,在歌曲内容下创建一个歌曲内容行,歌曲内容行下有一个歌曲内容行与一个标题行:

在此时更改最外侧的歌曲内容行的圆角值为 38,且底部不显示:

此时页面能显示效果如下:

接着在标题栏中添加一个文本,显示为标题:

接着在歌曲内容行下添加 3 个列,命名为序号、歌曲信息、播放,并且在歌曲信息列下创建两个行,一个命名为作者另一个命名为歌名:

接下来往这些相应的行列中添加所需的元素:

接下来设置这些对应内容的宽度和内外边距,随后页面将会呈现如下效果:

三、音乐分享小程序分享页与搜索页制作

音乐分享页与榜单页类似,页面效果如下:

在此我们复制榜单页,更改标题内容并且删除多余内容,此时页面将会显示如下:

随后添加几个输入框和一个按钮即可,如何操作不再赘述:

接下来开始制作搜索页,搜索页与首页内容类似,复制一个页面重命名为音乐搜索页,删除榜单内容,将榜单页中的歌曲每条样式复制到当前页面中:

搜索页与音乐分享页都是由其他页面改动而成,重复内容在此不再赘述,下面将实现该小程序的功能。

四、功能实现

4.1 登陆功能实现

在首页的标题栏中需要显示登陆用户的头像与昵称,此时发起小程序登陆,需要在后台中添加私有用户组件,使用私有用户组件完成用户的登陆操作。在此添加一个私有用户到后台,重命名为用户:

随后给登陆按钮添加事件,并在前台创建两个变量用于接收用户的头像和昵称:

登陆后由于标题栏中的图片需要显示用户头像、文本需要显示用户昵称,在此为其绑定数据为用户头像和用户昵称变量内容:

此时用户登录按钮应该换成分享页面的按钮,点击可以跳到分享音乐页面中。需要完成这个需求需要在页面中添加 if 组件,设置用户昵称默认值为未登录,当用户昵称为未登录时显示立即登录按钮,当用户昵称不等于未登录时,显示分享页面跳转按钮:

此时在分享音乐中添加点击事件,将其点击后需要跳转到分享页面:

4.2 分享功能实现

此时为了方便数据显示,我们先为当前小程序应用添加数据的提交服务,为其添加该服务我们需要插件一个私有数据库存放歌曲内容:

此时为其添加字段为歌手、歌名、播放数、音乐链接:

随后添加一个服务命名为音乐上传:

这个服务接收 3 个参数,分别是歌手、歌名、音乐链接:

随后将其接收的参数传入数据库并且设置播放数的默认值为 0:

接下来在分享页面的按钮中添加点击事件,点击该按钮将会使用音乐上传服务,传入所输入的歌手、歌名和音乐链接名,接着添加失败回调与成功回调为其添加对应的响应:

4.3 首页数据显示功能实现

首页的 3 个榜单分别是热歌、新歌以及原创,热歌以播放数进行排列、新歌以时间顺序做为排列、原创则随机进行推荐。

在此创建热歌服务命名为最热榜单,在服务中使用数据库进行数据输出,设置输出的函数为 1 到传入的参数获取数为一个范围最终返回数据结果:


同理,最新榜单以及原创推荐榜单类似,在此贴出服务逻辑图示:

接下来在首页中创建 3 个对象变量,这 3 个对象变量用于接收数据榜单数据:


设置这些对象其列名为歌名、播放数、数据ID:


接下来设置首页的初始化事件,在初始化时使用这些榜单服务,传入获取数为 3, 获取到我们所需的内容使用对象变量进行接收:

此时我们删除榜单中的多余歌名行,使用循环组件对齐进行创建:

设置不同的榜单的数据为循环创建的数据来源:

并且将其文本内容绑定为对应的内容:

4.4 首页播放功能实现

此时歌曲数据获取到了,将为其播放按钮编写播放功能。我们此时需要创建一个服务,通过ID查找音乐地址:

此服务只返回音乐链接列内容:


接着我们在首页中添加一个音频组件,随后给播放按钮设置事件:

此时点击按钮后将会使用音乐链接服务传入当前的数据ID作为参数,获取到音乐地址后,设置音频的播放地址为返回内容,最后将音频进行播放即可。

4.5 榜单页功能实现

进入榜单页需要点击不同的榜单图片进入:


我们给这些图片设置不同的标志,点击图片后我们在前台中创建一个变量命名为选择类型,选择类型点击热歌榜时为 1、点击新歌榜时为 2、点击原创榜时为 3,并且跳转到榜单页:

接下来给榜单页创建一个初始化事件,通过选择类型判断榜单所选择内容,并且通过内容设置当前页面的背景色作为区分;最后将获取的内容使用一个获取内容对象数组进行接收:

获取内容对象变量列名为:


接下来将歌曲内容存放到一个循环创建之中:

设置循环创建的数据来源为获取内容变量:


随后将播放按钮根据首页编写的方式进行设定即可。

4.6 搜索页功能实现

搜索页的功能实现较为简单,我们首先给首页的音乐搜索输入框设置一个点击事件:


点击后将会跳转到搜索页:

随后创建一个搜索服务:


此服务接收一个参数为音乐名,随后通过输出时设置条件搜索歌名包含音乐名即可:

最后当点击音乐搜索按钮后启动其服务使用搜索内容对象变量进行接收即可:

搜索变量列为如下:

最后使用循环遍历显示内容即可,并且通过与首页相同方式为播放按钮绑定播放时间即可完成该页内容:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01_反射_02_反射类的构造方法

【工程截图】 【Person.java】 //将要被反射的类 package com.Higgin.reflect; import java.util.List;public class Person {private String name"NULL";private int age0;public Person(){System.out.println("构造方法:Person()");}public P…

私有云搭建 OpenStack(centos7.3, centos-release-openstack-ocata)

OpenStack(centos7.3,centos-release-openstack-ocata)nova:计算节点queue:消息队列,系统瓶颈所在scheduler:调度机制conductor:更新数据库cert(objectstore)&#xff1a…

C# 类继承中的私有字段都去了哪里?

最近在看 C 类继承中的字段内存布局,我就很好奇 C# 中的继承链那些 private 字段都哪里去了? 在内存中是如何布局的,毕竟在子类中是无法访问的。一:举例说明 为了方便讲述,先上一个例子:internal class Program{stati…

大型分布式网站架构技术总结

本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值…

python 数据分析找到老外最喜欢的中国美食【完整代码】

一、环境及依赖 语言:python3.8 抓取:selenium 代理:ipide **注:**想要完整代码的在末尾,注意新手建议慢慢看完。在此提示一下本篇文章的编写步骤:1.获取数据、2.翻译、3.数据清洗、4.切词词权重、5.词云 …

hihoCoder 1257 Snake Carpet(很简单的构造方法)

2015 ACM / ICPC 北京现场赛 I 题 构造 注意一个小坑&#xff0c;每条蛇的输出是要从头到尾输出的。 还要注意的是&#xff0c;不能开数组去模拟构造过程&#xff0c;然后输出&#xff0c;那样会TLE的。 #include <cstdio> #include <cstring> #include <cmath&…

西北师范大学地理与环境科学学院考研真题汇总(高等数学)持续更新。。。

西北师范大学地理与环境学科学院研究生入学考试的所有专业(地图学与地理信息系统、自然地理学、人文地理学、环境科学、环境工程)的数学均为自主命题,复习参考教材为同济大学第五版。

Java网络编程二:Socket详解

Socket又称套接字&#xff0c;是连接运行在网络上两个程序间的双向通讯的端点。 一、使用Socket进行网络通信的过程 服务端&#xff1a;服务器程序将一个套接字绑定到一个特定的端口&#xff0c;并通过此套接字等待和监听客户端的连接请求。 客户端&#xff1a;客户端程序根据你…

在 .NET 中使用 FixedTimeEquals 应对计时攻击

计时攻击 在计算机安全中&#xff0c;计时攻击&#xff08;Timing attack&#xff09;是旁道攻击 &#xff08;Side-channel attack&#xff09; 的一种&#xff0c;而旁道攻击是根据计算机处理过程发出的信息进行分析&#xff0c;包括耗时&#xff0c;声音&#xff0c;功耗等…

解读大型网站系统架构的演化

解读大型网站系统架构的演化 大型网站的架构是根据业务需求不断完善的&#xff0c;根据不同的业务特征会做特定的设计和考虑&#xff0c;本文只是讲述一个常规大型网站会涉及的一些技术和手段。作者&#xff1a;李平来源&#xff1a;LEE的博客前言 一个成熟的大型网站&#xff…

【ArcGIS风暴】西北地区气象台站年均NDVI与年均气温和降水的相关性分析

在研究植被动态变化与气候的关系时,通常通过计算植被NDVI值与气温和降水的相关系数来描述相关性的大小。如下图所示,计算了西北地区分布的气象台站与气温和降水的相关性并作图可视化。 下面详细说明整个实现过程。 一、计算相关系数 1. 原理分析 通过计算年均N…

python 全解坦克大战 辅助类 附完整代码【雏形】

我正在博客之星评选&#xff0c;欢迎投票给我 会从投票人中抽奖机械键盘书&#xff0c;中了会私聊地址 投票连接是&#xff1a;https://bbs.csdn.net/topics/603955346 投票连接是&#xff1a;https://bbs.csdn.net/topics/603955346 投票连接是&#xff1a;https://bbs.csdn.…

vc++ mfc中拖动效果的实现 借助于CImageList

拖动是界面编程频繁使用的一个效果&#xff0c;在windows系统下可谓大行其道。纵观时下的应用软件几乎各个都支持各种各样拖动的效果&#xff0c;windows7更是把拖动做到了极致。其实说起来拖动的实现也很简单&#xff0c;对于有句柄的对象都可以通过MoveWindow或SetWindowPos实…

有序的Map集合--LinkedHashMap

提出问题&#xff1a; 在写一个dao的时候&#xff0c;我的需求是这个dao是一个万能的&#xff0c;目前的方法只有一个查询出实体类对应的表中所有的数据&#xff0c;通过传入的对象&#xff0c;利用反射获取实体类中的属性名&#xff0c;属性类型&#xff0c;利用字符串拼接获取…

yii 前后台分离及登陆验证

2019独角兽企业重金招聘Python工程师标准>>> 比较合理的做法其实是分成两个框架来布署&#xff1b;然而这样说法也太绝对。 事实上是针对不同系统&#xff0c;应采用不同的方法。如为CMS系统&#xff0c;则不需很复杂的权限管理&#xff0c;但如果有管理员与会员之分…

Kibana

2019独角兽企业重金招聘Python工程师标准>>> Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的&#xff0c;查询语法是基于Lucene的查询语法。允许布尔运算符、通配符和字段筛选。注意关键字要大写 全文搜索 在搜…

电脑QQ能登上,网页打不开的解决办法

打开360卫士&#xff0c;在功能大全里选择网络优化&#xff0c;断网急救箱。 可以看到DNS服务异常、浏览器配置异常&#xff0c;点击立即修复。

个人黑名单 抄袭耻辱墙

抄袭耻辱墙 博主抄袭文原文我爱Python数据挖掘https://blog.csdn.net/weixin_38037405/article/details/125862095https://blog.csdn.net/A757291228/article/details/117464313黄埔数据分析https://blog.csdn.net/weixin_39060517/article/details/118024847https://blog.csdn…

快速掌握 ASP.NET 身份认证框架 Identity(一)

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事ASP.NET Core 内置了一个强大的身份认证框架 Identity&#xff0c;掌握它可以让我们快速开发高安全的身份认证功能&#xff0c;不仅如此&#xff0c;它还是一个基于数据库的用户管理系统&#xff0c;其中包含了大量的辅助…

浅谈大型web系统架构

动态应用&#xff0c;是相对于网站静态内容而言&#xff0c;是指以c/c、php、Java、perl、.net等服务器端语言开发的网络应用软件&#xff0c;比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。   大型动态应用…