酷狗音乐模仿还在继续
酷狗音乐模仿还在继续
前一段时间刚好有时间,就试着去写一写酷狗音乐的界面,无奈好多资源图片找不到,只能凑合着用吧,界面做的还很粗糙,有待细化。仔细观察酷狗音乐界面,主要可以分为四部分构成:
- 标题栏
- 左边工具栏
- 右边歌曲、歌词、MV等界面
- 底部控制栏
下面主要说说界面的组成
界面的组成是这样的,标题栏、左边工具栏、右边内容区域、底部工具栏都是继承自QWidget的,主界面是继承自QFrame的,在主界面将其他各个界面进行了一个布局,最终实现了如上图所示的界面。
- 标题栏
标题栏中实现了各个按钮菜单的初始化,全部敲的代码。
TitleWidget.h
/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-09
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器---标题栏的实现
**************************************************/
#ifndef TITLEWIDGET_H
#define TITLEWIDGET_H#include <QWidget>class PushButton;
class QLabel;
class QHBoxLayout;
class SearchLineEdit;
class MyMenu;
class RemoteWidget;typedef enum TbnStatus{BtnMax = 0,BtnMin
}TBNSTATUS;class TitleWidget : public QWidget
{Q_OBJECT
public:explicit TitleWidget(QWidget *parent = 0);~TitleWidget();void Translator();Q_SIGNALS:void signalClose();void signalHideWidget();void signalMax();void signalMix();void signalShowSkin();//转发遥控器信号void signalShowOrHideWidget(int);private Q_SLOTS:void slotChangeBtnStatus(int status);void slotOpenOrHideRemote();void slotHideRemote();private:void initForm();void initWidget();void initConnect();private:QLabel *m_labelIcon;PushButton *m_TbnLogin; //登录QLabel *m_label_div;PushButton *m_TbnRegister; //注册SearchLineEdit *m_search; //索索框PushButton *m_TbnGame; //游戏PushButton *m_TbnNews; //消息通知PushButton *m_TbnSkin; //皮肤PushButton *m_TbnMenu; //主菜单PushButton *m_TbnRemote; //遥控器PushButton *m_TbnMenu_max; //最大化PushButton *m_TbnMenu_min; //最小化PushButton *m_TbnMenu_close; //关闭QHBoxLayout *m_mainLayout;MyMenu *m_menu;RemoteWidget *m_remoteWidget;bool m_isOpenRemote; //是否打开遥控器
};#endif // TITLEWIDGET_H
TitleWidget.cpp
void TitleWidget::initWidget()
{m_labelIcon = new QLabel(this);//登录和注册m_TbnLogin = new PushButton(this);m_label_div = new QLabel(this);m_label_div->setFixedSize(1,16);m_label_div->setStyleSheet("background-color:#FDF7F7");m_TbnRegister = new PushButton(this);//搜索框m_search = new SearchLineEdit(this);m_TbnGame = new PushButton(this); //游戏m_TbnNews = new PushButton(this); //消息通知m_TbnSkin = new PushButton(this); //皮肤//创建菜单按钮m_TbnMenu = new PushButton(this);m_TbnRemote = new PushButton(this); //遥控器m_TbnMenu_min = new PushButton(this);m_TbnMenu_max = new PushButton(this);m_TbnMenu_close = new PushButton(this);//标题栏布局m_mainLayout = new QHBoxLayout(this);m_mainLayout->addSpacing(20);m_mainLayout->addWidget(m_labelIcon);m_mainLayout->addSpacing(10);m_mainLayout->addWidget(m_TbnLogin);m_mainLayout->addWidget(m_label_div);m_mainLayout->addWidget(m_TbnRegister);m_mainLayout->addSpacing(220);m_mainLayout->addWidget(m_search);m_mainLayout->addStretch();m_mainLayout->addWidget(m_TbnGame);m_mainLayout->addWidget(m_TbnNews);m_mainLayout->addWidget(m_TbnSkin);m_mainLayout->addSpacing(10);m_mainLayout->addWidget(m_TbnMenu);m_mainLayout->addWidget(m_TbnRemote);m_mainLayout->addWidget(m_TbnMenu_min);m_mainLayout->addWidget(m_TbnMenu_max);m_mainLayout->addWidget(m_TbnMenu_close);m_mainLayout->addSpacing(6);m_mainLayout->setContentsMargins(0,20,0,0);this->setLayout(m_mainLayout);m_menu = new MyMenu(this);m_TbnMenu->setMenu(m_menu);m_remoteWidget = new RemoteWidget();
}//翻译标题栏
void TitleWidget::Translator()
{m_menu->translator();m_TbnLogin->setText(tr("tbn_login"));m_TbnRegister->setText(tr("tbn_register"));m_TbnLogin->setToolTip(tr("login"));m_TbnRegister->setToolTip(tr("register"));m_TbnGame->setToolTip(tr("tbn_game"));m_TbnNews->setToolTip(tr("tbn_news"));m_TbnSkin->setToolTip(tr("tbn_skin"));m_TbnMenu->setToolTip(tr("tbn_menu"));m_TbnRemote->setToolTip(tr("tbn_start_remote"));m_TbnMenu_close->setToolTip(tr("tbn_close"));m_TbnMenu_max->setToolTip(tr("tbn_max"));m_TbnMenu_min->setToolTip(tr("tbn_min"));
}
标题栏中有个菜单按钮,主要是子类化QMenu,然后添加各个Action即可:
MainMenu.cpp:
/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-12
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器--主菜单的实现
**************************************************/
#include "mymenu.h"
#include "iconhelper.h"
#include <QApplication>
#include <QDesktopWidget>
#include "Common/menu.h"
#include "BottomBar/play_mode_menu.h"#include "aboutkugoudialog.h"MyMenu::MyMenu(QWidget *parent):Menu(parent)
{this->initForm();this->initWidget();this->initConnect();
}MyMenu::~MyMenu()
{
}void MyMenu::translator()
{m_playMode->translator();m_aboutKugou->translator();m_actionLogin->setText(tr("action_login"));m_menuAddMusic->setTitle(tr("menu_add_music"));m_actionAddLocalMusic->setText(tr("action_add_local_music.."));m_actionAddLocalFolderMusic->setText(tr("action_add_music_local_folder_music"));m_actionMagicRemote->setText(tr("action_magic_remote"));m_actionStripRemote->setText(tr("action_strip_remote"));m_actionHideRemote->setText(tr("action_hide_remote"));m_actionAverageBalance->setText(tr("average_balance"));m_actionMusicPlug->setText(tr("action_music_plug"));m_actiontimingSetting->setText(tr("action_timingSetting"));m_actionAlwaysFront->setText(tr("action_alwaysFront"));m_actionRecoveryStatus->setText(tr("action_recovery"));m_actionAllSpeedDownload->setText(tr("action_all_speed_download"));m_actionCustomDownload->setText(tr("action_custom_download"));m_actionBroadband->setText(tr("action_broadband"));m_actionOnLineUpdate->setText(tr("action_online_update"));m_actionShowTodayRecommend->setText(tr("action_show_today_recommend"));m_actionHelp->setText(tr("action_help"));m_actionSuggest->setText(tr("action_suggest"));m_actionAboutKugou->setText(tr("action_about_kugou"));m_actionSetting->setText(tr("action_setting"));m_actionQuit->setText(tr("action_quit"));
}void MyMenu::slotShowAboutKugou()
{m_aboutKugou->exec();
}void MyMenu::initForm()
{
}void MyMenu::initWidget()
{m_actionLogin = new QAction(this);//添加音乐二级菜单m_menuAddMusic = new Menu(this);m_actionAddLocalMusic = new QAction(m_menuAddMusic);m_actionAddLocalFolderMusic = new QAction(m_menuAddMusic);m_menuAddMusic->addAction(m_actionAddLocalMusic);m_menuAddMusic->addAction(m_actionAddLocalFolderMusic);m_playMode = new Play_Mode_Menu(this);m_playMode->setTitle(tr("play_mode"));//遥控器二级菜单m_menuRemote = new Menu(this);m_menuRemote->setTitle(tr("menu_remote"));m_actionMagicRemote = new QAction(this);m_actionStripRemote = new QAction(this);m_actionHideRemote = new QAction(this);m_menuRemote->addAction(m_actionMagicRemote);m_menuRemote->addAction(m_actionStripRemote);m_menuRemote->addAction(m_actionHideRemote);m_actionAverageBalance = new QAction(this);m_actionMusicPlug = new QAction(this);m_actiontimingSetting = new QAction(this);m_actionAlwaysFront = new QAction(this);m_actionRecoveryStatus = new QAction(this);//下载设置二级菜单m_menuDownloadSetting = new Menu(this);m_menuDownloadSetting->setTitle(tr("menu_downloadSetting"));m_actionAllSpeedDownload = new QAction(this);m_actionCustomDownload = new QAction(this);m_actionBroadband = new QAction(this);m_menuDownloadSetting->addAction(m_actionAllSpeedDownload);m_menuDownloadSetting->addAction(m_actionCustomDownload);m_menuDownloadSetting->addAction(m_actionBroadband);//在线更新m_actionOnLineUpdate = new QAction(this);//显示今日推荐m_actionShowTodayRecommend = new QAction(this);//帮助与意见反馈二级菜单m_menuHelp = new Menu(this);m_menuHelp->setTitle(tr("menu_help"));m_actionHelp = new QAction(this);m_actionSuggest = new QAction(this);m_actionAboutKugou = new QAction(this);m_menuHelp->addAction(m_actionHelp);m_menuHelp->addAction(m_actionSuggest);m_menuHelp->addAction(m_actionAboutKugou);m_actionSetting = new QAction(this);m_actionQuit = new QAction(this);m_actionLogin->setIcon(QIcon(":/image/mainMenu/help.png"));m_actionAverageBalance->setIcon(QIcon(":/image/mainMenu/open.png"));m_actionSetting->setIcon(QIcon(":/image/mainMenu/setting.png"));m_actionQuit->setIcon(QIcon(":/image/mainMenu/quit.png"));this->addAction(m_actionLogin);this->addSeparator();this->addMenu(m_menuAddMusic);this->addMenu(m_playMode);this->addSeparator();this->addMenu(m_menuRemote);this->addAction(m_actionAverageBalance);this->addAction(m_actionMusicPlug);this->addAction(m_actiontimingSetting);this->addSeparator();this->addAction(m_actionAlwaysFront);this->addAction(m_actionRecoveryStatus);this->addMenu(m_menuDownloadSetting);this->addAction(m_actionOnLineUpdate);this->addAction(m_actionShowTodayRecommend);this->addMenu(m_menuHelp);this->addAction(m_actionSetting);this->addSeparator();this->addAction(m_actionQuit);//菜单子功能m_aboutKugou = new AboutKugouDialog; //关于酷狗}void MyMenu::initConnect()
{connect(m_actionAboutKugou,SIGNAL(triggered(bool)),this,SLOT(slotShowAboutKugou()));connect(m_actionQuit,SIGNAL(triggered(bool)),this,SIGNAL(signal_quit()));
}
- 左边工具栏
左边工具栏是继承自QToolButton,然后通过一个垂直布局二实现的:
LeftToolBar.cpp
/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-09
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器---左边工具按钮的实现
**************************************************/
#include "lefttoolbar.h"
#include "iconhelper.h"#include "Common/toolbutton.h"
#include <QLabel>
#include <QVBoxLayout>LeftToolBar::LeftToolBar(QWidget *parent): QWidget(parent)
{this->initWidget();this->initForm();this->initConnect();
}void LeftToolBar::traanslator()
{m_tbnLocalList->setToolTip(tr("local_list"));m_tbnNetworkCollect->setToolTip(tr("network_collect"));m_tbnMusicRadio->setToolTip(tr("music_radio"));m_tbnPhoneManage->setToolTip(tr("phone_manaage"));m_tbnLocalMusic->setToolTip(tr("local_music"));m_tbnMore->setToolTip(tr("more"));
}void LeftToolBar::initForm()
{this->setMaximumWidth(40);m_tbnLocalList->setIcon(QIcon(":/image/appTools/music_button_playlist.png"));m_tbnNetworkCollect->setIcon(QIcon(":/image/appTools/music_button_cloud.png"));m_tbnMusicRadio->setIcon(QIcon(":/image/appTools/music_button_radio.png"));m_tbnLocalMusic->setIcon(QIcon(":/image/appTools/music_button_mydownl.png"));m_tbnPhoneManage->setIcon(QIcon(":/image/appTools/music_button_mobile.png"));m_tbnMore->setIcon(QIcon(":/image/appTools/music_button_tools.png"));m_vecTbn.push_back(m_tbnLocalList);m_vecTbn.push_back(m_tbnNetworkCollect);m_vecTbn.push_back(m_tbnMusicRadio);m_vecTbn.push_back(m_tbnLocalMusic);m_vecTbn.push_back(m_tbnPhoneManage);m_vecTbn.push_back(m_tbnMore);for (int i = 0; i != m_vecTbn.size();i++){m_vecTbn.at(i)->setCursor(Qt::ArrowCursor);m_vecTbn.at(i)->setCheckable(true);m_vecTbn.at(i)->setAutoExclusive(true);}
}void LeftToolBar::initWidget()
{m_tbnLocalList = new ToolButton(this);m_tbnNetworkCollect = new ToolButton(this);m_tbnMusicRadio = new ToolButton(this);m_tbnPhoneManage = new ToolButton(this);m_tbnLocalMusic = new ToolButton(this);m_tbnMore = new ToolButton(this);this->setButtonStyle(m_tbnLocalList);this->setButtonStyle(m_tbnNetworkCollect);this->setButtonStyle(m_tbnMusicRadio);this->setButtonStyle(m_tbnPhoneManage);this->setButtonStyle(m_tbnLocalMusic);this->setButtonStyle(m_tbnMore);m_mainLayout = new QVBoxLayout(this);m_mainLayout->addSpacing(15);m_mainLayout->addWidget(m_tbnLocalList);m_mainLayout->addWidget(m_tbnNetworkCollect);m_mainLayout->addWidget(m_tbnMusicRadio);m_mainLayout->addWidget(m_tbnPhoneManage);m_mainLayout->addWidget(m_tbnLocalMusic);m_mainLayout->addWidget(m_tbnMore);m_mainLayout->addStretch();m_mainLayout->setContentsMargins(0,0,10,0);this->setLayout(m_mainLayout);
}void LeftToolBar::initConnect()
{connect(m_tbnLocalList,SIGNAL(clicked(bool)),this,SIGNAL(signalLocalList()));connect(m_tbnNetworkCollect,SIGNAL(clicked(bool)),this,SIGNAL(signalNetCollect()));connect(m_tbnMusicRadio,SIGNAL(clicked(bool)),this,SIGNAL(signalMusicRadio()));connect(m_tbnPhoneManage,SIGNAL(clicked(bool)),this,SIGNAL(signalPhoneManage()));connect(m_tbnLocalMusic,SIGNAL(clicked(bool)),this,SIGNAL(signalLocalMusic()));connect(m_tbnMore,SIGNAL(clicked(bool)),this,SIGNAL(signalMoreTool()));
}void LeftToolBar::setButtonStyle(ToolButton *tbn)
{tbn->setFixedSize(48,50);tbn->setObjectName("leftToolBar");
}
- 右边内容区域
右边内容区域就是一个QWidget,暂时设置为背景透明而已,后期还得继续处理! 底部工具栏
底部工具栏主要有上一首、播放/暂停、下一首、播放进度条、收藏、下载、播放模式、声音、播放列表等等组成:
/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-09
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器---底部控制界面
**************************************************/
#include "bottomwidget.h"
#include "iconhelper.h"
#include "Common/toolbutton.h"
#include "sliderwidget.h"
#include "play_mode_menu.h" //播放模式菜单#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QDebug>BottomWidget::BottomWidget(QWidget *parent):QWidget(parent)
{ this->initWidget();this->initForm();this->initConnect();
}BottomWidget::~BottomWidget()
{
}void BottomWidget::translator()
{m_playMode->translator();m_tbnPerious->setToolTip(tr("perious_music"));m_tbnNext->setToolTip(tr("nect_music"));m_tbnPlay->setToolTip(tr("play_music"));m_tbnLove->setToolTip(tr("i_love_it"));m_tbnDownload->setToolTip(tr("download_music"));m_tbnSimilarMusic->setToolTip(tr("similar_music"));m_tbnCircleMode->setToolTip(tr("list_circle_model"));m_tbnVoice->setToolTip(tr("no_voice"));m_tbnSoundEffect->setToolTip(tr("snake_effect")); //蝰蛇音效m_tbnMusicWords->setToolTip(tr("open_desktop_music_words")); //打开桌面歌词m_label_misic_num->setText("10");m_labelMusicName->setText(tr("label_music_name"));m_labelMusicTotalTime->setText("00:00");m_labelMusicCurTime->setText("00:00");
}void BottomWidget::initForm()
{this->setMaximumHeight(60);
}void BottomWidget::initWidget()
{m_tbnPerious = new ToolButton();m_tbnPlay = new ToolButton();m_tbnNext = new ToolButton();m_tbnLove = new ToolButton();m_tbnDownload = new ToolButton();m_tbnSimilarMusic = new ToolButton();m_tbnCircleMode = new ToolButton(this);m_tbnCircleMode->setObjectName("tbnMenu");m_playMode = new Play_Mode_Menu(this);m_playMode->setObjectName("MenuplayMode");m_tbnCircleMode->setMenu(m_playMode);m_tbnVoice = new ToolButton();m_tbnSoundEffect = new ToolButton();m_tbnMusicWords = new ToolButton();m_tbnMusicPlayQueue = new ToolButton();m_label_misic_num = new QLabel(this);m_label_misic_num->setObjectName("whitelabel");m_label_misic_num->setStyleSheet("color:rgb(255,255,255)");//歌曲信息标签m_labelMusicName = new QLabel(this);m_labelMusicName->setObjectName("whitelabel");m_labelMusicTotalTime = new QLabel(this);m_labelMusicTotalTime->setObjectName("whitelabel");QLabel *label_music_time_div = new QLabel(this);label_music_time_div->setText("/");label_music_time_div->setObjectName("whitelabel");m_labelMusicCurTime = new QLabel(this);m_labelMusicCurTime->setObjectName("whitelabel");m_sliderWidget = new SliderWidget(); //播放进度条m_MusicInfoLayout = new QHBoxLayout;m_MusicInfoLayout->addWidget(m_labelMusicName);m_MusicInfoLayout->addStretch();m_MusicInfoLayout->addWidget(m_labelMusicCurTime);m_MusicInfoLayout->addWidget(label_music_time_div);m_MusicInfoLayout->addWidget(m_labelMusicTotalTime);m_MusicInfoLayout->setContentsMargins(0,0,0,0);QVBoxLayout *MusicLayout = new QVBoxLayout();MusicLayout->addLayout(m_MusicInfoLayout);MusicLayout->addWidget(m_sliderWidget);MusicLayout->setContentsMargins(0,0,0,0);m_mainLayout = new QHBoxLayout(this);m_mainLayout->addSpacing(25);m_mainLayout->addWidget(m_tbnPerious);m_mainLayout->addSpacing(5);m_mainLayout->addWidget(m_tbnPlay);m_mainLayout->addSpacing(5);m_mainLayout->addWidget(m_tbnNext);//m_mainLayout->addStretch();m_mainLayout->addLayout(MusicLayout);m_mainLayout->addWidget(m_tbnLove);m_mainLayout->addWidget(m_tbnDownload);m_mainLayout->addWidget(m_tbnSimilarMusic);m_mainLayout->addWidget(m_tbnCircleMode);m_mainLayout->addWidget(m_tbnVoice);m_mainLayout->addWidget(m_tbnSoundEffect);m_mainLayout->addWidget(m_tbnMusicWords);m_mainLayout->addWidget(m_tbnMusicPlayQueue);m_mainLayout->addWidget(m_label_misic_num);m_mainLayout->addSpacing(20);m_mainLayout->setContentsMargins(0,10,0,20);setLayout(m_mainLayout);
}//信号和槽的关联
void BottomWidget::initConnect()
{connect(m_tbnPerious,SIGNAL(clicked(bool)),this,SIGNAL(signalPreious()));connect(m_tbnPlay,SIGNAL(clicked(bool)),this,SIGNAL(signalPlay()));connect(m_tbnNext,SIGNAL(clicked(bool)),this,SIGNAL(signalNext()));//循环模式信号和槽连接connect(m_tbnCircleMode,SIGNAL(clicked(bool)),m_playMode,SLOT(slotMenuVisiable()));
}
以上就是各个界面的详细代码,在主界面中,将各个子界面按照一定的布局方式进行布局即可。
//初始化界面
void MusicWidget::initWidget()
{m_title = new TitleWidget(this); //标题栏m_title->installEventFilter(this); //标题栏安装事件监听器,识别鼠标的双击m_midWidget = new MidWidget(this); //中间内容m_bottom = new BottomWidget(this); //底部工具栏m_leftToolBar = new LeftToolBar(this); //左边工具按钮m_midLayout = new QHBoxLayout();m_midLayout->addWidget(m_leftToolBar);m_midLayout->addWidget(m_midWidget);m_midLayout->setContentsMargins(2,0,0,0);m_maintLayout = new QVBoxLayout(this);m_maintLayout->addWidget(m_title);m_maintLayout->addLayout(m_midLayout);m_maintLayout->addWidget(m_bottom);m_maintLayout->setContentsMargins(0,0,0,0);this->setLayout(m_maintLayout);
}
以上就是酷狗音乐界面的大致结构,以后会抽时间继续完善。
技术在于交流、分享……
博客地址:http://blog.csdn.net/u013704336\
Email:kevinlq0912@163.com
QQ:936563422
酷狗音乐模仿还在继续相关推荐
- 酷狗android平板,安卓平板车载共享 体验酷狗音乐HD版
安卓平板车载共享 体验酷狗音乐HD版 2013年04月24日 13:53作者:马承平编辑:马承平文章出处:泡泡网原创 分享 泡泡网影音相关频道4月24日 自苹果iPad及各品牌Android平板面世以 ...
- xmd后缀名改mp3_GitHub - dh9527/xMDPlayer: 一个可以在线听网易云音乐、QQ音乐、酷狗音乐的音乐播放器,还可以让你听自己的网易云歌单哦!...
xMDPlayer 一个可以在线听网易云音乐.QQ音乐.酷狗音乐的音乐播放器,还可以让你听自己的网易云歌单哦! A player that can make you listen to music o ...
- Qt模仿酷狗音乐的播放图标
手机酷狗音乐在播放的时候,中间有一个旋转图标,显示播放进度,如下所示. Qt模仿酷狗音乐的播放图标效果图: 头文件 #ifndef QWHKUGOUMUSICLABEL_H #define QWHKU ...
- 仿酷狗音乐播放器开发日志——整体框架分析
转载请说明出处,谢谢~~ 学习duilib界面库有一段时间了,除了仓鼠软件共享以外还没用它开发过什么完整的软件项目.今天看到酷狗音乐播放器做得不错,经过几年的改革,酷狗现在的UI已经相当不错了.在这个 ...
- KRSReader酷狗音乐歌词写真图片提取工具(提取KRS文件中的图片)
最近发现酷狗音乐中的歌词写真图片还是比较给力的,很多友友表示喜欢,但是苦于不懂得如何提取,小菜利用周末闲暇时间写了一个小工具,专门用来提取酷狗音乐歌词写真图片. 废话不多说,软件界面如下: 使用说明: ...
- 酷狗音乐的大数据实践
2015-06-03 王劲 高可用架构 高可用架构 此文是根据酷狗音乐大数据架构师王劲在[QCON高可用架构群]中的分享内容整理而成,转发请注明出处. 王劲:目前就职酷狗音乐,大数据架构师,负责酷狗大 ...
- xm文件怎样转换成mp3_酷狗音乐如何将歌曲转换成MP3格式?方法超级简单
在我们平时的生活当中,听音乐来放松或者是打发时间,已经成为现代年轻人的一种娱乐方式.而我们平时听歌的时候,我们往往会遇到自己非常喜爱的歌曲,而此时将自己喜爱的歌曲下载下来后,想要存储到手机上继续听,但 ...
- android酷狗界面,酷狗音乐Android 2.2版系统优化版界面曝光
酷狗音乐Android 2.2版系统优化版界面曝光 2011-03-23 13:30:13 来源:cnbeta 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: 酷狗音乐也针对And ...
- 酷狗音乐linux版_酷狗音乐概念版APP内测获用户好评:极简化,更高级
这两天在网上冲浪的时候,发现不少网友都在安利一个叫做"酷狗音乐概念版"的APP,难道是酷狗又在闷声搞大事了?搜了一下发现,原来是酷狗音乐概念版APP已经开始进入内测阶段,尝试着下载 ...
最新文章
- 速领:「人工智能算法从入门到精通教程」
- php flink,plus/flink.php · 辉辉菜/三强源码 - Gitee.com
- 【学术相关】不喜欢做研究,到底要不要读博士?
- ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
- 深入理解InnoDB(7)—系统表空间
- vs怎么把textbox输入的实数放置变量里_方程的计算机处理96(3)_C++vs
- 机器学习之监督学习(五)——集成学习(Boosting)
- bzoj 1610: [Usaco2008 Feb]Line连线游戏
- Bootstrap-按钮
- python输入的字符串转换为对应的数字类型_Psychopy | 第1期:数据类型及运算符
- Windows 10 word无法创建工作文件,找不到临时环境变量
- 计算机系十周年聚会邀请函,十周年同学聚会邀请函
- 在Intellij IDEA中使用Debug
- 如何控制舵机的速度?
- 腾讯开源Spring Cloud Tencent 是什么
- java 对话框计算器,《Java程序设计》第16周礼拜四:GUI编程及文件对话框的使用 计算器...
- P3374 【模板】树状数组 1( 单点修改 + 区间查询 )
- Java 爬虫微信公众号详情,并且破解微信图片跨域问题
- oracle数据库管理员账户锁定,Oracle数据库账号被锁定解决方法
- archetype-catalog.xml