chendeben 1 год назад
Родитель
Сommit
905bcc5ccb

+ 26 - 8
entry/src/main/ets/pages/NewIndex.ets

@@ -8,7 +8,7 @@ import { VideoItem } from '../viewmodel/VideoItem';
 import ScreenUtil from '../common/util/ScreenUtil';
 import { Utility } from '../common/util/Utility';
 import { emitter } from '@kit.BasicServicesKit';
-import { common } from '@kit.AbilityKit';
+// import { common } from '@kit.AbilityKit';
 import { AdSlot, AdSlotBuilder,
   CSJAdCreator,
   CSJAdSdk, CSJNativeExpressAd, NativeExpressAdListener } from '@csj/openadsdk';
@@ -20,6 +20,9 @@ import { StreamContent } from '../view/StreamContent';
 import { AvSessionController } from '../controller/AvSessionController';
 import { ImageKnife } from '@ohos/imageknife';
 import { BreakpointSystem, BreakpointTypeEnum } from '../common/util/BreakpointSystem';
+import dataStorage from '@ohos.data.storage';
+import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant';
+import common from '@ohos.app.ability.common';
 
 const TAG = 'NewIndex'; // 日志标签
 
@@ -109,6 +112,9 @@ struct NewIndex{
   /** 记录上一次点击返回键的时间戳,用于双击退出 */
   private  backTime:number=0;
 
+  @Provide isDarkMode: boolean = false;
+  private storage: dataStorage.Storage | undefined = undefined;
+
   /**
    * 返回键处理逻辑:
    * - 如果不是根目录或有历史记录,发送广播通知更新列表
@@ -154,12 +160,24 @@ struct NewIndex{
     Utility.setStatusBarLight()
     // ScreenUtil 设置屏幕尺寸信息
     ScreenUtil.setScreenSize();
-    this.bundleName = await  AppUtil.getBundleName()
-    this.versionName = await AppUtil.getVersionName();
+    this.bundleName =   AppUtil.getBundleName()
+    this.versionName =  AppUtil.getVersionName();
     // 初始化图片缓存
     await ImageKnife.getInstance().initFileCache(this.context, 256, 256 * 1024 * 1024)
     // 判断是否显示赞助入口
     this.isShowSponsorship = Utility.isOpenTime()
+
+    // 初始化深色模式状态
+    try {
+      const context = getContext(this) as common.UIAbilityContext;
+      this.storage = await dataStorage.getStorage(context.cacheDir);
+      if (this.storage) {
+        const colorMode = await this.storage.get('currentColorMode', ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT);
+        this.isDarkMode = colorMode === ConfigurationConstant.ColorMode.COLOR_MODE_DARK;
+      }
+    } catch (err) {
+      console.error('Failed to get color mode:', err);
+    }
   }
 
   /**
@@ -182,7 +200,6 @@ struct NewIndex{
           .width('100%')
           .height(1)
       }
-      .backgroundColor($r('app.color.title_bar_bg'))
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
       // 主内容区
       Column() {
@@ -198,6 +215,7 @@ struct NewIndex{
       .width('100%')
       .height('100%')
       .justifyContent(FlexAlign.Start)
+      .backgroundColor($r('app.color.index_background'))
 
       // 侧边抽屉菜单
       if(this.isShowDrawer){
@@ -212,7 +230,7 @@ struct NewIndex{
           }
           .width(this.currentBreakpoint !== BreakpointTypeEnum.SM?'40%':'80%')
           .height('100%')
-          .backgroundColor(Color.White)
+          .backgroundColor($r('app.color.silvery'))
           .onClick((event:ClickEvent)=>{
             // 阻止事件冒泡
           })
@@ -275,7 +293,7 @@ struct NewIndex{
             Text(item.title)
               .margin({ left: 10, right: 20 })
               .fontSize(15)
-              .fontColor(Color.Gray)
+              .fontColor($r('app.color.index_tab_font_color'))
               .fontWeight(480)
             Blank()
             // 右侧箭头
@@ -402,9 +420,9 @@ struct NewIndex{
     }
     .width('100%')
     .alignListItem(ListItemAlign.Center)
-    .backgroundColor($r('app.color.white'))
+    .backgroundColor($r('app.color.silvery'))
     .layoutWeight(1)
-    .divider({strokeWidth: 1, color: '#ffe9f0f0'})
+    .divider({strokeWidth: 1, color: $r('app.color.divider_color')})
     .edgeEffect(EdgeEffect.None) // 必须设置列表为滑动到边缘无效果
   }
 

+ 80 - 36
entry/src/main/ets/pages/SettingPage.ets

@@ -5,6 +5,9 @@ import { AppUtil, PreferencesUtil } from '@pura/harmony-utils'
 import { Utility } from '../common/util/Utility'
 import { AvSessionController } from '../controller/AvSessionController'
 import { CustomContentDialog } from '@kit.ArkUI'
+import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant';
+import dataStorage from '@ohos.data.storage';
+import common from '@ohos.app.ability.common';
 // import { CustomDialog, CustomDialogController } from '@arkui/components'
 
 @Preview
@@ -25,8 +28,9 @@ export struct SettingPage {
   @State tempCoverApiUrl: string = ''
   @State coverApiUrl: string = PreferencesUtil.getStringSync('COVER_API', '')
   @State apiDialogType: 'lyric' | 'cover' = 'lyric'
-
   static readonly SORT_TYPE: string = 'musicSortType';
+  @State isDarkMode: boolean = false // 是否启用深色模式
+  private storage: dataStorage.Storage | undefined = undefined;
   static readonly IS_BGPLAY_OPEN: string = 'isBgPlayOpen';
   static readonly IS_AUTO_RATATE: string = 'isAutoRatate';
   static readonly iS_MEMORY_PLAY: string = 'isMemoryPlay';
@@ -35,6 +39,7 @@ export struct SettingPage {
   static readonly iS_MUSIC_BG_COVER: string = 'isMusicBGCover';
   static readonly iS_SAVE_PLAY_MODE: string = 'isSavePlayMode';
   static readonly IS_COVER_RECTANGLE: string = 'isCoverRectangle'; //封面圆形或者方形
+  static readonly IS_DARK_MODE: string = 'isDarkMode'; // 深色模式设置
   @State titleBarModel: TitleBar.Model = new TitleBar.Model()
     .setTitleTextStyle(FontStyle.Normal)
     .setTitleBarStyle(TitleBar.BarStyle.TRANSPARENT)
@@ -107,14 +112,24 @@ export struct SettingPage {
   }
 
   // 组件生命周期
-  aboutToAppear() {
-    this.sortType  = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
+  async aboutToAppear() {
     this.isBgPlayOpen = PreferencesUtil.getBooleanSync(SettingPage.IS_BGPLAY_OPEN, true)
     this.isAutoRatate = PreferencesUtil.getBooleanSync(SettingPage.IS_AUTO_RATATE, true)
     this.isMemoryPlay = PreferencesUtil.getBooleanSync(SettingPage.iS_MEMORY_PLAY, true)
     this.isMediacodec = PreferencesUtil.getBooleanSync(SettingPage.IS_MIDIACODEC_OPEN, false)
     this.isMusicMemoryPlay = PreferencesUtil.getBooleanSync(SettingPage.iS_MUSIC_MEMORY_PLAY, false)
     this.isMusicBGCover = PreferencesUtil.getBooleanSync(SettingPage.iS_MUSIC_BG_COVER, true)
+
+    try {
+      const context = getContext(this) as common.UIAbilityContext;
+      this.storage = await dataStorage.getStorage(context.cacheDir);
+      if (this.storage) {
+        const colorMode = await this.storage.get('currentColorMode', ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT);
+        this.isDarkMode = colorMode === ConfigurationConstant.ColorMode.COLOR_MODE_DARK;
+      }
+    } catch (err) {
+      console.error('Failed to get color mode:', err);
+    }
   }
 
   // 组件生命周期
@@ -122,13 +137,39 @@ export struct SettingPage {
     // 无需处理apiDialogController
   }
 
+  // 切换深色模式
+  async toggleDarkMode(checked: boolean) {
+    try {
+      if (this.storage) {
+        const newMode = checked ? ConfigurationConstant.ColorMode.COLOR_MODE_DARK : ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT;
+        await this.storage.put('currentColorMode', newMode);
+        await this.storage.flush();
+        this.isDarkMode = checked;
+
+        // 通知系统更新颜色模式
+        const context = getContext(this) as common.UIAbilityContext;
+        context.getApplicationContext().setColorMode(newMode);
+
+        // 显示提示
+        this.getUIContext().getPromptAction().showToast({
+          message: checked ? '已切换到深色模式' : '已切换到浅色模式',
+          duration: 2000,
+          showMode: promptAction.ToastShowMode.TOP_MOST,
+          bottom: 85
+        });
+      }
+    } catch (err) {
+      console.error('Failed to update color mode:', err);
+    }
+  }
+
   build() {
     Column() {
       TitleBar({ model: $titleBarModel })
       Column() {
-        //音频设置
+        // 主题设置
         Row() {
-          Text('音频设置')
+          Text('主题设置')
             .margin({ left: 38, right: 20 })
             .fontSize(16)
             .fontColor(Color.Gray)
@@ -139,25 +180,26 @@ export struct SettingPage {
         .height(55)
 
         Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
+
+        // 深色模式开关
         Row() {
           Image($r('app.media.kp_music_nor'))
             .width(22)
             .height(22)
             .alignSelf(ItemAlign.Center)
             .margin({ left: 28 })
-          Text('记忆播放')
+          Text('深色模式')
             .margin({ left: 10, right: 20 })
             .fontSize(15)
             .fontColor(Color.Gray)
             .fontWeight(480)
           Blank()
-          Toggle({ type: ToggleType.Switch, isOn: this.isMusicMemoryPlay })
-            .selectedColor($r('app.color.title_bar_bg'))// 设置开关打开时的背景颜色为蓝色
-            .switchPointColor(Color.White)// 设置开关关闭时的滑块颜色为白色
+          Toggle({ type: ToggleType.Switch, isOn: this.isDarkMode })
+            .selectedColor($r('app.color.title_bar_bg'))
+            .switchPointColor(Color.White)
             .margin({ right: 28 })
-            .onChange((checked: boolean) => { // 选择开关状态变化时触发事件
-              this.isMusicMemoryPlay = checked;
-              PreferencesUtil.put(SettingPage.iS_MUSIC_MEMORY_PLAY, this.isMusicMemoryPlay)
+            .onChange((checked: boolean) => {
+              this.toggleDarkMode(checked);
             })
             .width(50)
             .height(30);
@@ -165,6 +207,20 @@ export struct SettingPage {
         .width('100%')
         .height(55)
 
+        Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
+
+        //音频设置
+        Row() {
+          Text('音频设置')
+            .margin({ left: 38, right: 20 })
+            .fontSize(16)
+            .fontColor(Color.Gray)
+            .fontWeight(480)
+          Blank()
+        }
+        .width('100%')
+        .height(55)
+
         Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
         Row() {
           Image($r('app.media.kp_music_nor'))
@@ -172,37 +228,26 @@ export struct SettingPage {
             .height(22)
             .alignSelf(ItemAlign.Center)
             .margin({ left: 28 })
-          Text('默认排序模式')
+          Text('记忆播放')
             .margin({ left: 10, right: 20 })
             .fontSize(15)
             .fontColor(Color.Gray)
             .fontWeight(480)
           Blank()
-          Select([//默认排序模式
-            { value: CommonConstants.SORT_ARRAY[0] },
-            { value: CommonConstants.SORT_ARRAY[1] },
-            { value: CommonConstants.SORT_ARRAY[2] },
-            { value: CommonConstants.SORT_ARRAY[3] },
-            { value: CommonConstants.SORT_ARRAY[4] },
-            { value: CommonConstants.SORT_ARRAY[5] },
-            { value: CommonConstants.SORT_ARRAY[6] },
-            { value: CommonConstants.SORT_ARRAY[7] }])
-            .font({ size: 15, weight: FontWeight.Medium })
-            .fontColor(Color.Gray)
-            .margin({right:28})
-            .selected(this.sortType)
-            .value(CommonConstants.SORT_ARRAY[this.sortType])
-            .onSelect(async (_index: number, text?: string | undefined) => {
-              this.sortType = _index
-              PreferencesUtil.put(SettingPage.SORT_TYPE, this.sortType)
+          Toggle({ type: ToggleType.Switch, isOn: this.isMusicMemoryPlay })
+            .selectedColor($r('app.color.title_bar_bg'))// 设置开关打开时的背景颜色为蓝色
+            .switchPointColor(Color.White)// 设置开关关闭时的滑块颜色为白色
+            .margin({ right: 28 })
+            .onChange((checked: boolean) => { // 选择开关状态变化时触发事件
+              this.isMusicMemoryPlay = checked;
+              PreferencesUtil.put(SettingPage.iS_MUSIC_MEMORY_PLAY, this.isMusicMemoryPlay)
             })
-
-
+            .width(50)
+            .height(30);
         }
         .width('100%')
         .height(55)
 
-
         Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
         Row() {
           Image($r('app.media.kp_music_nor'))
@@ -231,7 +276,6 @@ export struct SettingPage {
         .width('100%')
         .height(55)
 
-
         Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
 
         // API设置(合并标题)
@@ -299,7 +343,7 @@ export struct SettingPage {
         .margin({ top: 8, bottom: 12 })
 
       }
-      .backgroundColor(Color.White)
+      .backgroundColor(this.isDarkMode ? '#1E1E1E' : Color.White)
       .margin({
         left: 15,
         right: 15,
@@ -308,7 +352,7 @@ export struct SettingPage {
       })
       .borderRadius(30)
     }
-    .backgroundColor($r('app.color.index_background'))
+    .backgroundColor(this.isDarkMode ? '#121212' : $r('app.color.index_background'))
     .height('100%')
   }
 

+ 31 - 30
entry/src/main/ets/view/LocalMusic.ets

@@ -1,7 +1,6 @@
 import TitleBar from './TitleBar'
 import { Animator, curves, display, PromptAction, promptAction, router, window } from '@kit.ArkUI';
 import { VideoItem } from '../viewmodel/VideoItem';
-import { HomeConstants } from '../common/constants/HomeConstants';
 import {
   AppUtil,
   ArrayUtil,
@@ -166,6 +165,7 @@ export struct LocalMusic {
   @Consume @Watch('onModeChange') modeType: number; // 0首页,1媒体库,2艺术家,3专辑
   @State showSingleLyric: boolean = false
   @State sortType: number = 4 //默认排序方式
+  @Consume isDarkMode: boolean; // 消耗深色模式状态
 
   onModeChange() {
     if (this.modeType === 2 || this.modeType === 3) {
@@ -299,12 +299,13 @@ export struct LocalMusic {
     .setLeftIconWidth(25)
     .setLeftIconHeight(25)
     .setTitleName('首页')
-    .setLeftTitleFontSize(13)
-    .setRightIcon($r('app.media.add'))
-    .setTitleFontColor(Color.White)
-    .setTitleBarBackground($r('app.color.title_bar_bg'))
+    .setTitleFontSize(19)
+    .setTitleFontColor($r('app.color.text_color'))
+    // 根据深色模式状态动态设置标题栏背景色
+    .setTitleBarBackground(this.isDarkMode ? '#121212' : '#FF4081')
     .setTitleBarBottomLineColor($r('app.color.title_bar_bg'))
     .setRightTitleBackground($r('app.color.title_bar_bg'))
+    .setRightIcon($r('app.media.add'))
     .setOnRightClickListener(() => {
 
       this.showSheelDialog()
@@ -1814,7 +1815,7 @@ export struct LocalMusic {
       }
       .width('100%')
       .height('100%')
-      .backgroundColor($r('app.color.white'))
+      .backgroundColor($r('app.color.index_background'))
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM])
 
     }
@@ -2077,18 +2078,19 @@ export struct LocalMusic {
             translate: { x: 160 }
           })
           .margin({ left: 10, right: 20 })
+          .fontColor($r('app.color.text_color'))
         Row() {
           Text(`${this.artistMap.get(item.name)?.length ?? 0}首`)
             .fontSize(11)
             .padding({ top: 8 })
             .visibility(this.modeType === 2 ? Visibility.Visible : Visibility.None)
-            .fontColor(Color.Gray)
+            .fontColor($r('app.color.text_color'))
             .margin({ left: 10 })
           Text(`${this.albumMap.get(item.name)?.length ?? 0}首`)
             .fontSize(11)
             .padding({ top: 8 })
             .visibility(this.modeType === 3 ? Visibility.Visible : Visibility.None)
-            .fontColor(Color.Gray)
+            .fontColor($r('app.color.text_color'))
             .margin({ left: 10 })
           Blank()
 
@@ -2145,21 +2147,20 @@ export struct LocalMusic {
               duration: 555,
               curve: 'Linear',
             })
-
-            .fontColor(this.currentSong?.filePath === item.filePath ? $r('app.color.title_bar_bg') : Color.Black)
+            .fontColor(this.currentSong?.filePath === item.filePath ? $r('app.color.title_bar_bg') : $r('app.color.text_color'))
             .margin({ left: 10 })
           Row() {
             Text(StrUtil.isEmpty(item.artist) ? item.cTime : item.artist + '  ' + item?.album)
               .fontSize(11)
               .padding({ top: 8 })
-              .fontColor(this.currentSong?.filePath === item.filePath ? $r('app.color.title_bar_bg') : Color.Gray)
+              .fontColor(this.currentSong?.filePath === item.filePath ? $r('app.color.title_bar_bg') : $r('app.color.text_color'))
               .margin({ left: 10 })
             Blank()
             Text(item.size)
               .fontSize(11)
               .padding({ top: 8 })
               .visibility(StrUtil.isEmpty(item.artist) ? Visibility.Visible : Visibility.None)
-              .fontColor(Color.Gray)
+              .fontColor($r('app.color.text_color'))
               .margin({ left: 10 })
           }
 
@@ -2251,7 +2252,7 @@ export struct LocalMusic {
             Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) {
               Text(item)
                 .fontSize(16)
-                .fontColor(this.modeType === index ? Color.White : '#666')
+                .fontColor(this.modeType === index ? Color.White : $r('app.color.text_color'))
                 .padding(15)
                 .onClick(() => {
                   this.modeType = index;
@@ -2292,12 +2293,12 @@ export struct LocalMusic {
             .fillColor('#ff5186')
 
           Text(`共找到${this.artistList.length}位艺术家`)
-            .fontColor(Color.Black)
+            .fontColor($r('app.color.text_color'))
             .fontSize(14)
             .opacity(this.opacityItem)
             .visibility(this.modeType === 2 ? Visibility.Visible : Visibility.None)
           Text(`共找到${this.albumList.length}张专辑`)
-            .fontColor(Color.Black)
+            .fontColor($r('app.color.text_color'))
             .opacity(this.opacityItem)
             .visibility(this.modeType === 3 ? Visibility.Visible : Visibility.None)
             .fontSize(14)
@@ -2319,7 +2320,7 @@ export struct LocalMusic {
             .layoutWeight(1)
           Text(`取消`)
             .margin({ left: 10, right: 10 })
-            .fontColor(Color.Black)
+            .fontColor($r('app.color.text_color'))
             .fontSize(16)
             .onClick(() => {
               this.isSearchMode = false
@@ -2380,14 +2381,14 @@ export struct LocalMusic {
             .margin({ left: 8 })
             .fillColor('#ff5186')
           Text(`播放全部`)
-            .fontColor(Color.Black)
+            .fontColor($r('app.color.text_color'))
             .fontSize(14)
             .animation({
               duration: 666,
               curve: 'ease-in-out' // 可选动画曲线
             })
           Text(`(${Utility.getGlobalList(this.videoLocalList, CommonConstants.TYPE_LOCAL).length}首)`)
-            .fontColor(Color.Black)
+            .fontColor($r('app.color.text_color'))
             .fontSize(14)
             .opacity(this.opacityItem)
             .animation({
@@ -2400,7 +2401,7 @@ export struct LocalMusic {
           duration: 666,
           curve: 'ease-in-out' // 可选动画曲线
         })
-        .backgroundColor(this.isClickedPLayAll ? '#d0d0d0' : '#ffffff')
+        .backgroundColor(this.isClickedPLayAll ? $r('app.color.silvery') : $r('app.color.index_background'))
         .onTouch((event: TouchEvent) => {
           if (event.type === TouchType.Down) {
             this.isClickedPLayAll = true;
@@ -2431,7 +2432,7 @@ export struct LocalMusic {
             .layoutWeight(1)
           Text(`取消`)
             .margin({ left: 10, right: 10 })
-            .fontColor(Color.Black)
+            .fontColor($r('app.color.text_color'))
             .fontSize(16)
             .onClick(() => {
               this.isSearchMode = false
@@ -2743,7 +2744,7 @@ export struct LocalMusic {
 
       }, (item: VideoItem) => item.filePath)
     }
-    .backgroundColor($r('app.color.white'))
+    .backgroundColor($r('app.color.index_background'))
     .divider({ strokeWidth: 1, color: '#ffe9f0f0' })
     .margin({ bottom: this.isPuraWP() ? 50 : 108 })
     .cachedCount(30)
@@ -3027,7 +3028,7 @@ export struct LocalMusic {
       .height(this.bottomBarHeight)
       .justifyContent(FlexAlign.Center)
       .hitTestBehavior(HitTestMode.Transparent)
-      .backgroundColor($r('app.color.white'))
+      .backgroundColor($r('app.color.index_background'))
       .bindContentCover($$this.isShowPlay, this.MusicPlayBuilder(), {
         // modalTransition: ModalTransition.DEFAULT,
         transition: AnimationHelper.transitionInDown(666),
@@ -3577,7 +3578,7 @@ export struct LocalMusic {
             // 文字描述区域
             Text(this.getDisplayText(minutes))
               .fontSize(15)
-              .fontColor(minutes === this.selectedMinutes ? $r('app.color.title_bar_bg') : 0x333333)// 选中态颜色变化
+              .fontColor(minutes === this.selectedMinutes ? $r('app.color.title_bar_bg') : $r('app.color.text_color'))// 选中态颜色变化
               .textAlign(TextAlign.Start)
               .layoutWeight(1); // 占据剩余空间
 
@@ -3741,7 +3742,7 @@ export struct LocalMusic {
       })
 
       Button() {
-        Image($r('app.media.ic_close'))
+        Image($r('app.media.close'))
           .fillColor(Color.White)
           .width(13)
       }
@@ -5725,7 +5726,7 @@ export struct LocalMusic {
                 .onClick(() => {
                   this.isJumpSetting = !this.isJumpSetting;
                 })
-            } else if (more.id === 12) {
+            } else if (more.id === 12) { //投播
               AVCastPicker({
                 customPicker: (): void => this.TPImageBuilder(more),
                 onStateChange: (state) => {
@@ -6044,16 +6045,16 @@ export struct LocalMusic {
         Column() {
           Text('仅对本播放列表有效')
             .fontSize(16)
-            .fontColor(Color.White)
+            .fontColor($r('app.color.text_color'))
           // 跳过头尾
           Column() {
             Row() {
               Text('跳过片头:')
                 .fontSize(16)
-                .fontColor(Color.White)
+                .fontColor($r('app.color.text_color'))
               Text(this.jumpTopTime + 's')
                 .fontSize(16)
-                .fontColor(Color.White)
+                .fontColor($r('app.color.text_color'))
             }
             .margin({ bottom: 5 })
 
@@ -6083,10 +6084,10 @@ export struct LocalMusic {
             Row() {
               Text('跳过片尾:')
                 .fontSize(16)
-                .fontColor(Color.White)
+                .fontColor($r('app.color.text_color'))
               Text(this.jumpEndTime + 's')
                 .fontSize(16)
-                .fontColor(Color.White)
+                .fontColor($r('app.color.text_color'))
             }
             .margin({ bottom: 5 })
 

+ 4 - 2
entry/src/main/resources/base/element/color.json

@@ -1,7 +1,9 @@
 {
   "color": [
-
-
+    {
+      "name": "text_color",
+      "value": "#000000"
+    },
     {
       "name": "start_window_background",
       "value": "#FFFFFF"

+ 4 - 0
entry/src/main/resources/dark/element/color.json

@@ -1,5 +1,9 @@
 {
   "color": [
+    {
+      "name": "text_color",
+      "value": "#FFFFFF"
+    },
     {
       "name": "start_window_background",
       "value": "#121212"

+ 112 - 0
entry/src/main/resources/light/element/color.json

@@ -0,0 +1,112 @@
+{
+  "color": [
+    {
+      "name": "text_color",
+      "value": "#333333"
+    },
+    {
+      "name": "start_window_background",
+      "value": "#FFFFFF"
+    },
+    {
+      "name": "silvery",
+      "value": "#F5F5F5"
+    },
+    {
+      "name": "white",
+      "value": "#FFFFFF"
+    },
+    {
+      "name": "touming",
+      "value": "#00FFFFFF"
+    },
+    {
+      "name": "ban_touming",
+      "value": "#00000000"
+    },
+    {
+      "name": "title_bar_bg",
+      "value": "#FF4081"
+    },
+    {
+      "name": "index_background",
+      "value": "#FFFFFF"
+    },
+    {
+      "name": "tab_bar_sel",
+      "value": "#55ceac"
+    },
+    {
+      "name": "tab_bar_normal",
+      "value": "#F5F5F5"
+    },
+    {
+      "name": "index_tab_font_color",
+      "value": "#333333"
+    },
+    {
+      "name": "index_tab_selected_font_color",
+      "value": "#007DFF"
+    },
+    {
+      "name": "index_tab_unselected_font_color",
+      "value": "#999999"
+    },
+    {
+      "name": "index_tab_local_list_font_color",
+      "value": "#666666"
+    },
+    {
+      "name": "divider_color",
+      "value": "#E0E0E0"
+    },
+    {
+      "name": "button_back_ground_color",
+      "value": "#007DFF"
+    },
+    {
+      "name": "dodgerBlue",
+      "value": "#1E90FF"
+    },
+    {
+      "name": "RoyalBlue",
+      "value": "#4169E1"
+    },
+    {
+      "name": "track_color",
+      "value": "#E0E0E0"
+    },
+    {
+      "name": "speed_text_color",
+      "value": "#666666"
+    },
+    {
+      "name": "btn_green",
+      "value": "#55ceac"
+    },
+    {
+      "name": "pri_bg",
+      "value": "#F5F5F5"
+    },
+    {
+      "name": "orange",
+      "value": "#FF8C00"
+    },
+    {
+      "name": "line_blue",
+      "value": "#00cccc"
+    },
+    {
+      "name": "btn_red",
+      "value": "#ff6b47"
+    },
+    {
+      "name": "slider_track",
+      "value": "#33000000"
+    },
+    {
+      "name": "select_swiper",
+      "value": "#DB000000"
+    }
+  ]
+}