.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shmBinary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-walBinary files differ
HDL-ON_Android/Assets/Language.ini
@@ -180,4 +180,5 @@ 5029=提示 5030=是否确认删除文件夹 5031=确认 5032=名称为空 5032=名称为空 5033=已添加到歌单: HDL-ON_Android/Assets/Phone/.DS_StoreBinary files differ
HDL-ON_Android/Assets/Phone/MusicIcon/fileList.png
HDL-ON_Android/Assets/Phone/MusicIcon/filePause.png
HDL-ON_Android/Assets/Phone/MusicIcon/filePlay.png
HDL-ON_Android/Assets/Phone/Public/MsgIcon/TipIconBlack.png
HDL-ON_Android/Assets/Phone/Public/MsgIcon/TipIconWhite.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -395,6 +395,11 @@ <AndroidAsset Include="Assets\Phone\MusicIcon\prev.png" /> <AndroidAsset Include="Assets\Phone\MusicIcon\prve1.png" /> <AndroidAsset Include="Assets\Phone\MusicIcon\clear.png" /> <AndroidAsset Include="Assets\Phone\Public\MsgIcon\TipIconWhite.png" /> <AndroidAsset Include="Assets\Phone\Public\MsgIcon\TipIconBlack.png" /> <AndroidAsset Include="Assets\Phone\MusicIcon\fileList.png" /> <AndroidAsset Include="Assets\Phone\MusicIcon\filePause.png" /> <AndroidAsset Include="Assets\Phone\MusicIcon\filePlay.png" /> </ItemGroup> <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" /> HDL_ON/.DS_StoreBinary files differ
HDL_ON/Common/R.cs
@@ -235,5 +235,6 @@ public readonly static int delMusicFile = 5030; public readonly static int confirmMusic = 5031; public readonly static int nameNull = 5032; public readonly static int addMusicList = 5033; } } HDL_ON/HDL_ON.projitems
@@ -135,6 +135,8 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\Music\View\MusicSourceView.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\Music\View\SongView.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\Music\View\DialogView.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\Music\A31MyList.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\Music\A31MyListMusic.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)UI\" /> HDL_ON/UI/Music/A31MusicSourcePage.cs
@@ -192,8 +192,12 @@ }; ///我的列表事件 myListView.clickBtn.MouseUpEventHandler += (sender, e) => { myListView.clickBtn.MouseUpEventHandler += (sender, e) => { A31MyList a31MyList = new A31MyList(); MainPage.BasePageView.AddChidren(a31MyList); a31MyList.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; ///本地音乐事件 localMusicSourceView.clickBtn.MouseUpEventHandler += (sender, e) => { HDL_ON/UI/Music/A31MyList.cs
New file @@ -0,0 +1,186 @@ using System; using System.Collections.Generic; using Shared; namespace HDL_ON.UI.Music { public class A31MyList : FrameLayout { public A31MyList() { Tag = "Music"; } VerticalScrolViewLayout middViewLayout; public void Show() { this.BackgroundColor = Color.ViewColor; var topView = new TopView(); this.AddChidren(topView.TopFLayoutView()); topView.topNameBtn.TextID = StringId.myList; topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; //播放/暂停图标 Button addIconBtn = new Button { X = Application.GetRealWidth(336), Y = Application.GetRealHeight(30), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/addMusic.png", }; topView.TopFLayoutView().AddChidren(addIconBtn); addIconBtn.MouseUpEventHandler += (sender, e) => { var fileNameList = new List<string>(); fileNameList.Clear(); foreach (var stringName in A31MusicModel.Current.FileLists) { fileNameList.Add(stringName.ListName); } new View.TipView().InputBox(StringId.addNewList, "", StringId.listNameNull, StringId.listNamesSame, fileNameList, (name) => { A31MusicModel.Current.FileLists.Add(new FileListInfo { ListName = name, }); A31MusicModel.Save(); FileView(); }); }; middViewLayout = new VerticalScrolViewLayout { BackgroundColor = Color.WhiteColor, Y = topView.fLayout.Bottom, Height = Application.GetRealHeight(H_W.H - H_W.T_Height), }; this.AddChidren(middViewLayout); FileView(); } void FileView() { middViewLayout.RemoveAll(); for (int i = 0; i < A31MusicModel.Current.FileLists.Count; i++) { var list = A31MusicModel.Current.FileLists[i]; RowLayout addFlieRow = new RowLayout { Height = Application.GetRealHeight(122), LineColor = Color.WhiteColor, SubViewWidth = Application.GetRealWidth(90),//改变编辑控件宽度多少; }; middViewLayout.AddChidren(addFlieRow); //文件图标 Button fileIconBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(8), Width = Application.GetMinRealAverage(106), Height = Application.GetMinRealAverage(106), UnSelectedImagePath = "MusicIcon/fileList.png", }; addFlieRow.AddChidren(fileIconBtn); //播放/暂停图标 Button playIconBtn = new Button { X = Application.GetRealWidth(94), Y = Application.GetRealHeight(86), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/filePause.png", SelectedImagePath = "MusicIcon/filePlay.png", }; addFlieRow.AddChidren(playIconBtn); playIconBtn.MouseUpEventHandler += (sender, e) => { //点击按钮随机播放音乐 }; //文件名控件 Button fileNameBtn = new Button { X = fileIconBtn.Right + Application.GetRealWidth(16), Y = Application.GetRealHeight(51), Width = Application.GetRealWidth(217), Height = Application.GetRealHeight(20), TextColor = Color.TextColor, TextSize = TextSize.Text14, TextAlignment = TextAlignment.CenterLeft, Text = list.ListName, }; addFlieRow.AddChidren(fileNameBtn); ///编辑控件 var editBtn = new Button { BackgroundColor = Color.MusicEditColor, Text = Language.StringByID(StringId.editMusic), TextColor = Color.WhiteColor, TextSize = TextSize.Text16, }; addFlieRow.AddRightView(editBtn); editBtn.MouseUpEventHandler += (sender, e) => { var fileNameList = new List<string>(); fileNameList.Clear(); foreach (var stringName in A31MusicModel.Current.FileLists) { fileNameList.Add(stringName.ListName); } new View.TipView().InputBox(StringId.modifyName, list.ListName, StringId.listNameNull, StringId.listNamesSame, fileNameList, (name) => { if (list.ListName != name) { ///修改名称不一样更新保存 list.ListName = name; fileNameBtn.Text = name; A31MusicModel.Save(); } }); }; ///删除控件 var delBtn = new Button { BackgroundColor = Color.MusicDelColor, Text = Language.StringByID(StringId.delMusic), TextColor = Color.WhiteColor, TextSize = TextSize.Text16, }; addFlieRow.AddRightView(delBtn); delBtn.MouseUpEventHandler += (sender, e) => { new View.TipView().TipBox(StringId.tip, StringId.delMusicFile, () => { addFlieRow.RemoveFromParent(); A31MusicModel.Current.FileLists.Remove(list); A31MusicModel.Save(); }); }; Button clickBtn = new Button { X = fileIconBtn.Right + Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 138), Height = Application.GetRealHeight(122), }; addFlieRow.AddChidren(clickBtn); clickBtn.MouseUpEventHandler += (sender, e) => { A31MyListMusic a31MyListMusic = new A31MyListMusic(); MainPage.BasePageView.AddChidren(a31MyListMusic); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; a31MyListMusic.Show(list); }; } } } } HDL_ON/UI/Music/A31MyListMusic.cs
New file @@ -0,0 +1,277 @@ using System; using System.Collections.Generic; using Shared; namespace HDL_ON.UI.Music { public class A31MyListMusic : FrameLayout { public A31MyListMusic() { Tag = "Music"; } VerticalRefreshLayout middViewLayout; /// <summary> /// 先加载界面出来 /// </summary> public void Show(FileListInfo fileListInfo) { #region 界面布局------ this.BackgroundColor = Color.ViewColor; var topView = new TopView(); this.AddChidren(topView.TopFLayoutView()); topView.topNameBtn.Text = fileListInfo.ListName; topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { //if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) //{ // updateSelectedMusicThread.Abort(); //} this.RemoveFromParent(); }; middViewLayout = new VerticalRefreshLayout { BackgroundColor = Color.WhiteColor, Y = topView.fLayout.Bottom, Height = Application.GetRealHeight(H_W.H - H_W.T_Height), }; this.AddChidren(middViewLayout); middViewLayout.BeginHeaderRefreshingAction += () => { middViewLayout.EndHeaderRefreshing(); }; #endregion MusicView(fileListInfo.MusicInfoList); } /// <summary> /// 加载数据的方法 /// </summary> public void MusicView(List<MusicInfo> musicList) { middViewLayout.RemoveAll(); int number = 0; for (int i = 0; i < musicList.Count; i++) { number++; var songs = musicList[i]; if (string.IsNullOrEmpty(songs.Title)) { //防止歌曲名字为空抛异常 songs.Title = " "; } if (string.IsNullOrEmpty(songs.Artist)) { //防止歌手名字为空抛异常 songs.Artist = " "; } FrameLayout musicViewFl = new FrameLayout { Width = Application.GetRealWidth(375), Height = Application.GetRealHeight(44), }; middViewLayout.AddChidren(musicViewFl); //列表当前播放音乐图标 Button playIconBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(10), Width = Application.GetMinRealAverage(24), Height = Application.GetMinRealAverage(24), UnSelectedImagePath = "MusicIcon/playStatus.png", Visible = false, Name = "playStatus", Tag = songs.URL, }; musicViewFl.AddChidren(playIconBtn); //歌曲控件 Button songBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(11), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(22), TextColor = Color.MusicTxet14Color, TextSize = TextSize.Text16, TextAlignment = TextAlignment.CenterLeft, Name = "song", Tag = songs.URL, Text = songs.Title.Trim() }; musicViewFl.AddChidren(songBtn); var wText = songBtn.GetTextWidth();//获取文本宽度 ///(歌曲+歌手)宽度最大值时280 if (wText > 280) { songBtn.Width = Application.GetRealWidth(280); } else { songBtn.Width = wText + 5; } //歌手控件 Button singerBtn = new Button { X = songBtn.Right, Y = Application.GetRealHeight(11), Width = Application.GetRealWidth(280 - songBtn.Width), Height = Application.GetRealHeight(22), TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text12, TextAlignment = TextAlignment.CenterLeft, //Text =("-" +songs.Artist).Trim(), Name = "singer", Tag = songs.URL, Text = "-" + songs.Artist.Trim() }; musicViewFl.AddChidren(singerBtn); if (wText > 280) { ///歌名长度小于250才可以显示歌手出来 singerBtn.Width = Application.GetRealWidth(0); } //添加喜爱音乐控件 Button loveIcon = new Button { X = Application.GetRealWidth(291), Y = Application.GetRealHeight(8), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/love.png", SelectedImagePath = "MusicIcon/loveSelected.png", }; musicViewFl.AddChidren(loveIcon); loveIcon.MouseUpEventHandler += (sender, e) => { loveIcon.IsSelected = !loveIcon.IsSelected; if (loveIcon.IsSelected) { ///查找音乐是否存在在列表 var music1 = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.URL == songs.URL); if (music1 == null) { ///没有存在就添加 A31MusicModel.Current.LoveMusicInfoList.Add(songs); } } else { ///查找音乐是否存在在列表 var music1 = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.URL == songs.URL); if (music1 != null) { ///存在就删除 A31MusicModel.Current.LoveMusicInfoList.Remove(songs); } } A31MusicModel.Save(); }; var music = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.URL == songs.URL); if (music != null) { loveIcon.IsSelected = true; } else { loveIcon.IsSelected = false; } //添加到我的列表 Button addIcon = new Button { X = Application.GetRealWidth(335), Y = Application.GetRealHeight(8), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/addMusic1.png", }; musicViewFl.AddChidren(addIcon); addIcon.MouseUpEventHandler = (sender, e) => { new View.DialogView { }.FieListView(songs); }; //点击控件 Button clickBtn = new Button { Width = Application.GetRealWidth(280), Height = Application.GetRealHeight(44), Tag = number,//标记播放哪一首歌曲 }; musicViewFl.AddChidren(clickBtn); ///点击播放事件 clickBtn.MouseUpEventHandler += (sender, e) => { System.Threading.Tasks.Task.Run(() => { System.Threading.Thread.Sleep(50); Application.RunOnMainThread(() => { //移除界面 A31MusicModel.Current.A31PlayStatus.Title = songBtn.Text; MainPage.BasePageView.RemoveViewByTag("Music"); //System.Threading.Tasks.Task.Run(() => //{ // SendMethod.ListMusicPlay("USBDiskQueue", clickBtn.Tag); //}); }); }); }; } } /// <summary> /// 定时更新当前播放音乐 /// </summary> System.Threading.Thread updateSelectedMusicThread; public void UpdateSelectedMusic() { updateSelectedMusicThread = new System.Threading.Thread(() => { while (this.Parent != null) { System.Threading.Thread.Sleep(1000); Application.RunOnMainThread(() => { try { for (int i = 0; i < middViewLayout.ChildrenCount; i++) { FrameLayout view = (FrameLayout)middViewLayout.GetChildren(i); var volIconBtn = (Button)view.GetChildren(0);//直接FrameLayout父控件找到该控件Button var songNameBtn = (Button)view.GetChildren(1);//直接FrameLayout父控件找到该控件Button var artistNameBtn = (Button)view.GetChildren(2);//直接FrameLayout父控件找到该控件Button if (A31MusicModel.Current.A31PlayStatus.TrackURL == songNameBtn.Tag.ToString()) { volIconBtn.Visible = true; songNameBtn.TextColor = Color.SelectedColor; songNameBtn.X = Application.GetRealWidth(48); artistNameBtn.X = songNameBtn.Right; artistNameBtn.TextColor = Color.SelectedColor; } else { volIconBtn.Visible = false; songNameBtn.TextColor = Color.MusicTxet14Color; songNameBtn.X = Application.GetRealWidth(16); artistNameBtn.X = songNameBtn.Right; artistNameBtn.TextColor = Color.MusicNoTxetColor; } } } catch { } }); } }); updateSelectedMusicThread.Start(); } } } HDL_ON/UI/Music/USBMusicList.cs
@@ -213,7 +213,7 @@ musicViewFl.AddChidren(addIcon); addIcon.MouseUpEventHandler = (sender, e) => { new View.DialogView { }.FieListView(); new View.DialogView { }.FieListView(songs); }; //点击控件 HDL_ON/UI/Music/View/DialogView.cs
@@ -5,10 +5,8 @@ { public class DialogView { public DialogView() { } public void FieListView() public void FieListView(MusicInfo musicInfo) { //主控件 Dialog dialog = new Dialog() @@ -106,14 +104,14 @@ A31MusicModel.Current.FileLists.Add(new FileListInfo { ListName = name, }); A31MusicModel.Save(); FileView(verticalScrolViewLayout); FileView(dialog, verticalScrolViewLayout, musicInfo); }); }; FileView(verticalScrolViewLayout); FileView(dialog, verticalScrolViewLayout, musicInfo); } void FileView(VerticalScrolViewLayout verticalScrolViewLayout) void FileView(Dialog dialog, VerticalScrolViewLayout verticalScrolViewLayout, MusicInfo musicInfo) { verticalScrolViewLayout.RemoveAll(); for (int i = 0; i < A31MusicModel.Current.FileLists.Count; i++) @@ -203,6 +201,20 @@ }); }; EventHandler<MouseEventArgs> click = (sender, e) => { if (null == list.MusicInfoList.Find((music) => music.URL == musicInfo.URL)) { list.MusicInfoList.Add(musicInfo); A31MusicModel.Save(); } dialog.Close(); string msg = Language.StringByID(StringId.addMusicList) + list.ListName; new PublicAssmebly().TipMsgAutoClose(msg, false); }; fileNameBtn.MouseUpEventHandler += click; addFlieRow.MouseUpEventHandler += click; } HDL_ON/UI/Music/View/TipView.cs
@@ -119,9 +119,10 @@ TextColor = Color.TextCancelColor, TextSize = TextSize.Text16, TextID = StringId.cancelMusic, Gravity = Gravity.BottomLeft, }; whiteView.AddChidren(btnCancel); btnCancel.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomLeft); Button btnConfirm = new Button() { X = btnCancel.Right, @@ -167,6 +168,7 @@ whiteView.Height = Application.GetRealHeight(183); btnLine.Y = whiteView.Height - Application.GetRealHeight(44 + 1); btnCancel.Y = btnLine.Bottom; btnCancel.Gravity = Gravity.BottomLeft; btnConfirm.Y = btnLine.Bottom; btnConfirm.Gravity = Gravity.BottomRight; @@ -289,8 +291,10 @@ TextColor = Color.TextCancelColor, TextSize = TextSize.Text16, TextID = StringId.cancelMusic, Gravity = Gravity.BottomLeft, }; whiteView.AddChidren(btnCancel); btnCancel.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomLeft); Button btnConfirm = new Button() { @@ -328,6 +332,7 @@ whiteView.Height = Application.GetRealHeight(183); btnLine.Y = whiteView.Height - Application.GetRealHeight(44 + 1); btnCancel.Y = btnLine.Bottom; btnCancel.Gravity = Gravity.BottomLeft; btnConfirm.Y = btnLine.Bottom; btnConfirm.Gravity = Gravity.BottomRight; @@ -421,9 +426,10 @@ TextColor = Color.TextCancelColor, TextSize = TextSize.Text16, TextID = StringId.cancelMusic, Gravity = Gravity.BottomLeft, }; whiteView.AddChidren(btnCancel); btnCancel.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomLeft); Button btnConfirm = new Button() { X = btnCancel.Right,