Sfoglia il codice sorgente

深色/浅色切换

chendeben 1 anno fa
parent
commit
b041e90235

+ 8 - 20
entry/src/main/ets/MyAbilityStage.ets

@@ -1,36 +1,24 @@
 import AbilityStage from '@ohos.app.ability.AbilityStage';
-import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant';
-import dataStorage from '@ohos.data.storage';
 import hilog from '@ohos.hilog';
 
 export default class MyAbilityStage extends AbilityStage {
-  private storage: dataStorage.Storage | undefined = undefined;
-
   async onCreate(): Promise<void> {
-    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
+    hilog.info(0x0000, 'Heanup', '%{public}s', 'Ability onCreate');
     try {
-      // 获取存储实例
-      this.storage = await dataStorage.getStorage(this.context.cacheDir);
-      // 保存当前颜色模式
-      if (this.storage) {
-        await this.storage.put('currentColorMode', this.context.config.colorMode);
-        await this.storage.flush();
-      }
+      // 保存当前颜色模式到 AppStorage
+      AppStorage.setOrCreate('currentColorMode', this.context.config.colorMode);
     } catch (err) {
-      hilog.error(0x0000, 'testTag', 'Failed to initialize storage: %{public}s', err.message);
+      hilog.error(0x0000, 'Heanup', 'Failed to initialize color mode: %{public}s', err.message);
     }
   }
 
   async onConfigurationUpdate(newConfig: import('@ohos.app.ability.Configuration').Configuration): Promise<void> {
     try {
-      if (this.storage) {
-        // 更新颜色模式
-        await this.storage.put('currentColorMode', newConfig.colorMode);
-        await this.storage.flush();
-        hilog.info(0x0000, 'testTag', 'the newConfig.colorMode is %{public}s', JSON.stringify(newConfig.colorMode) ?? '');
-      }
+      // 更新颜色模式到 AppStorage
+      AppStorage.setOrCreate('currentColorMode', newConfig.colorMode);
+      hilog.info(0x0000, 'Heanup', 'the newConfig.colorMode is %{public}s', JSON.stringify(newConfig.colorMode) ?? '');
     } catch (err) {
-      hilog.error(0x0000, 'testTag', 'Failed to update color mode: %{public}s', err.message);
+      hilog.error(0x0000, 'Heanup', 'Failed to update color mode: %{public}s', err.message);
     }
   }
 } 

+ 3 - 3
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';
@@ -22,7 +22,6 @@ 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'; // 日志标签
 
@@ -112,7 +111,7 @@ struct NewIndex{
   /** 记录上一次点击返回键的时间戳,用于双击退出 */
   private  backTime:number=0;
 
-  @Provide isDarkMode: boolean = false;
+  @State isDarkMode: boolean = false;
   private storage: dataStorage.Storage | undefined = undefined;
 
   /**
@@ -200,6 +199,7 @@ struct NewIndex{
           .width('100%')
           .height(1)
       }
+      .backgroundColor($r('app.color.title_bar_bg'))
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
       // 主内容区
       Column() {

+ 32 - 38
entry/src/main/ets/pages/SettingPage.ets

@@ -2,13 +2,9 @@ import TitleBar from '../view/TitleBar'
 import { promptAction, router } from '@kit.ArkUI'
 import { CommonConstants } from '../common/constants/CommonConstants'
 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
 @Entry
@@ -29,8 +25,8 @@ export struct SettingPage {
   @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;
+  @StorageProp('currentColorMode') @Watch('onColorModeChange') currentMode: number = ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT;
+  @StorageLink('isDarkMode') isDarkMode: boolean = false // 是否启用深色模式
   static readonly IS_BGPLAY_OPEN: string = 'isBgPlayOpen';
   static readonly IS_AUTO_RATATE: string = 'isAutoRatate';
   static readonly iS_MEMORY_PLAY: string = 'isMemoryPlay';
@@ -112,57 +108,55 @@ export struct SettingPage {
   }
 
   // 组件生命周期
-  async aboutToAppear() {
+  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);
-    }
+    
+    // 初始化深色模式状态
+    this.isDarkMode = this.currentMode === ConfigurationConstant.ColorMode.COLOR_MODE_DARK;
+    AppStorage.setOrCreate('isDarkMode', this.isDarkMode);
   }
 
-  // 组件生命周期
-  aboutToDisappear() {
-    // 无需处理apiDialogController
+  // 监听颜色模式变化
+  onColorModeChange(): void {
+    this.isDarkMode = this.currentMode === ConfigurationConstant.ColorMode.COLOR_MODE_DARK;
+    AppStorage.setOrCreate('isDarkMode', this.isDarkMode);
   }
 
   // 切换深色模式
   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);
+      const newMode = checked ? ConfigurationConstant.ColorMode.COLOR_MODE_DARK : ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT;
+      
+      // 更新 AppStorage 中的颜色模式
+      AppStorage.setOrCreate('currentColorMode', newMode);
+      AppStorage.setOrCreate('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
-        });
-      }
+      // 显示提示
+      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);
     }
   }
 
+  // 组件生命周期
+  aboutToDisappear() {
+    // 无需处理apiDialogController
+  }
+
   build() {
     Column() {
       TitleBar({ model: $titleBarModel })

+ 55 - 39
entry/src/main/ets/view/LocalMusic.ets

@@ -26,7 +26,7 @@ import { BusinessError, emitter } from '@kit.BasicServicesKit';
 import { dataSharePredicates, uniformTypeDescriptor } from '@kit.ArkData';
 import { BubbleBean } from '../viewmodel/BubbleBean';
 import { PopupPosition, XPopup } from '@chinalike/popup';
-import { common } from '@kit.AbilityKit';
+import { common, ConfigurationConstant } from '@kit.AbilityKit';
 import { AnimationHelper, DialogAction, DialogHelper } from '@pura/harmony-dialog';
 import { fileIo, fileUri, picker } from '@kit.CoreFileKit';
 import { CSJUtil } from '../common/util/CSJUtil';
@@ -165,7 +165,18 @@ export struct LocalMusic {
   @Consume @Watch('onModeChange') modeType: number; // 0首页,1媒体库,2艺术家,3专辑
   @State showSingleLyric: boolean = false
   @State sortType: number = 4 //默认排序方式
-  @Consume isDarkMode: boolean; // 消耗深色模式状态
+  @StorageProp('currentColorMode') @Watch('onColorModeChange') currentMode: number =
+    ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT;
+
+  onColorModeChange() {
+    console.log('Heanup-当前模式:' + this.currentMode)
+    if (this.currentMode == ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT) {
+      //当前为浅色模式,资源初始化逻辑
+
+    } else {
+      //当前为深色模式,资源初始化逻辑
+    }
+  }
 
   onModeChange() {
     if (this.modeType === 2 || this.modeType === 3) {
@@ -300,14 +311,12 @@ export struct LocalMusic {
     .setLeftIconHeight(25)
     .setTitleName('首页')
     .setTitleFontSize(19)
-    .setTitleFontColor($r('app.color.text_color'))
-    // 根据深色模式状态动态设置标题栏背景色
-    .setTitleBarBackground(this.isDarkMode ? '#121212' : '#FF4081')
+    .setTitleFontColor($r('app.color.text_color'))// 根据深色模式状态动态设置标题栏背景色
+    .setTitleBarBackground($r('app.color.title_bar_bg'))
     .setTitleBarBottomLineColor($r('app.color.title_bar_bg'))
     .setRightTitleBackground($r('app.color.title_bar_bg'))
     .setRightIcon($r('app.media.add'))
     .setOnRightClickListener(() => {
-
       this.showSheelDialog()
     })
     .setOnTitleClickListener(() => {
@@ -346,7 +355,7 @@ export struct LocalMusic {
 
   // 组件生命周期
   aboutToAppear() {
-    this.sortType  = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
+    this.sortType = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
     Utility.getAppName(getContext(this)).then((appName: string) => {
       this.appName = appName
     })
@@ -451,7 +460,7 @@ export struct LocalMusic {
           data1: this.context,
           data2: this.rootPath,
           data3: this.lockPath,
-          data4: PreferencesUtil.getStringSync('COVER_API',''),
+          data4: PreferencesUtil.getStringSync('COVER_API', ''),
         });
         PreferencesUtil.putSync('isFirstApp', false)
       } else {
@@ -860,16 +869,16 @@ export struct LocalMusic {
     return mediaItems;
   }
 
-  updateListData(mList: Array<VideoItem>,noSort?:boolean) {
+  updateListData(mList: Array<VideoItem>, noSort?: boolean) {
 
     animateTo({ duration: 888 }, () => {
       this.opacityItem = 0;
     });
     setTimeout(() => {
       this.videoLocalList = mList;
-      if(!noSort){
-        if(this.modeType===0||this.modeType===1){
-          this.sortType  = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
+      if (!noSort) {
+        if (this.modeType === 0 || this.modeType === 1) {
+          this.sortType = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
           this.doSortType(this.sortType)
         }
       }
@@ -933,6 +942,7 @@ export struct LocalMusic {
     let pup = XPopup.Builder()
       .setPopupPosition(PopupPosition.BOTTOM)
       .atView('pup_positon_music')
+      .setBackgroundColor($r('app.color.title_bar_bg'))
       .asBubble(wrapBuilder(customPopupBuilder), dataBean)
       .show()
 
@@ -969,7 +979,7 @@ export struct LocalMusic {
             data1: this.context,
             data2: this.rootPath,
             data3: this.lockPath,
-            data4: PreferencesUtil.getStringSync('COVER_API',''),
+            data4: PreferencesUtil.getStringSync('COVER_API', ''),
           });
           break
       }
@@ -1043,22 +1053,23 @@ export struct LocalMusic {
       transition: AnimationHelper.transitionInDown(555),
       onAction: (index) => {
         this.doSortType(index)
-        this.updateListData(this.videoLocalList,true)
+        this.updateListData(this.videoLocalList, true)
       }
     })
   }
 
-
-  doSortType(index:number){
-    switch (index){
+  doSortType(index: number) {
+    switch (index) {
       case 0:
         this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
           // 类型排序优先级
           const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-          if (typeOrder !== 0) return typeOrder;
+          if (typeOrder !== 0) {
+            return typeOrder;
+          }
 
           // 处理艺术家可能为undefined的字符串比较
-          const artistA = a.artist?.trim() || '';  // 可选添加 trim() 处理空格
+          const artistA = a.artist?.trim() || ''; // 可选添加 trim() 处理空格
           const artistB = b.artist?.trim() || '';
           return artistA.localeCompare(artistB);
         });
@@ -1068,10 +1079,12 @@ export struct LocalMusic {
         this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
           // 类型排序优先级
           const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-          if (typeOrder !== 0) return typeOrder;
+          if (typeOrder !== 0) {
+            return typeOrder;
+          }
 
           // 处理艺术家可能为undefined的字符串比较
-          const artistA = a.artist?.trim() || '';  // 可选添加 trim() 处理空格
+          const artistA = a.artist?.trim() || ''; // 可选添加 trim() 处理空格
           const artistB = b.artist?.trim() || '';
           return artistB.localeCompare(artistA);
         });
@@ -1080,10 +1093,12 @@ export struct LocalMusic {
         this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
           // 类型排序优先级
           const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-          if (typeOrder !== 0) return typeOrder;
+          if (typeOrder !== 0) {
+            return typeOrder;
+          }
 
           // 处理专辑可能为undefined的字符串比较
-          const albumA = a.album?.trim() || '';  // 可选添加 trim() 处理空格
+          const albumA = a.album?.trim() || ''; // 可选添加 trim() 处理空格
           const albumB = b.album?.trim() || '';
           return albumA.localeCompare(albumB);
         });
@@ -1093,10 +1108,12 @@ export struct LocalMusic {
         this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
           // 类型排序优先级
           const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-          if (typeOrder !== 0) return typeOrder;
+          if (typeOrder !== 0) {
+            return typeOrder;
+          }
 
           // 处理专辑可能为undefined的字符串比较
-          const albumA = a.album?.trim() || '';  // 可选添加 trim() 处理空格
+          const albumA = a.album?.trim() || ''; // 可选添加 trim() 处理空格
           const albumB = b.album?.trim() || '';
           return albumB.localeCompare(albumA);
         });
@@ -2149,13 +2166,15 @@ export struct LocalMusic {
               duration: 555,
               curve: 'Linear',
             })
-            .fontColor(this.currentSong?.filePath === item.filePath ? $r('app.color.title_bar_bg') : $r('app.color.text_color'))
+            .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') : $r('app.color.text_color'))
+              .fontColor(this.currentSong?.filePath === item.filePath ? $r('app.color.title_bar_bg') :
+              $r('app.color.text_color'))
               .margin({ left: 10 })
             Blank()
             Text(item.size)
@@ -3580,7 +3599,8 @@ export struct LocalMusic {
             // 文字描述区域
             Text(this.getDisplayText(minutes))
               .fontSize(15)
-              .fontColor(minutes === this.selectedMinutes ? $r('app.color.title_bar_bg') : $r('app.color.text_color'))// 选中态颜色变化
+              .fontColor(minutes === this.selectedMinutes ? $r('app.color.title_bar_bg') :
+              $r('app.color.text_color'))// 选中态颜色变化
               .textAlign(TextAlign.Start)
               .layoutWeight(1); // 占据剩余空间
 
@@ -4306,9 +4326,9 @@ export struct LocalMusic {
     let jiaMilyricPath = lyricPath.substring(0, lyricPath.lastIndexOf('.')) + '.lrcc'
     LogUtil.debug("onecold lyricPath =" + lyricPath)
 
-    const neiqianLrc = LrcParser.getLyrics(this.videoUrl);//获取内嵌歌词
-    if(StrUtil.isNotEmpty(neiqianLrc)&&!isToast){
-      LogUtil.debug("onecold 找到内嵌歌词 neiqianLrc =" + neiqianLrc  )
+    const neiqianLrc = LrcParser.getLyrics(this.videoUrl); //获取内嵌歌词
+    if (StrUtil.isNotEmpty(neiqianLrc) && !isToast) {
+      LogUtil.debug("onecold 找到内嵌歌词 neiqianLrc =" + neiqianLrc)
       //赋值给this.lyricContent,播控中心才可以显示歌词
       this.lyricContent = neiqianLrc
       // 将文件内容按行分割成字符串数组
@@ -4322,8 +4342,6 @@ export struct LocalMusic {
     }
 
 
-
-
     if (isToast || ((!FileUtil.accessSync(lyricPath) && !FileUtil.accessSync(jiaMilyricPath))
       && !Utility.isVideoByExtension(this.videoUrl))) {
       if (this.currentSong !== undefined) {
@@ -4579,8 +4597,6 @@ export struct LocalMusic {
     })
   }
 
-
-
   // 定义开始旋转的方法
   // 定时器用于一百毫秒执行一次旋转角度
   @State timer: number = 0
@@ -5771,8 +5787,8 @@ export struct LocalMusic {
                 { value: '3x' }])
                 .font({ size: 16, weight: FontWeight.Medium })
                 .fontColor($r('sys.color.white'))
-                .margin({left:25})
-                .visibility(more.id===1?Visibility.Visible:Visibility.None)
+                .margin({ left: 25 })
+                .visibility(more.id === 1 ? Visibility.Visible : Visibility.None)
                 .selected(CommonConstants.video_speed_list.indexOf(this.playSpeed))
                 .value(Utility.optimizedFormat(this.playSpeed))
                 .onSelect(async (_index: number, text?: string | undefined) => {
@@ -5781,7 +5797,7 @@ export struct LocalMusic {
                     speed = 1;
                   }
                   this.playSpeed = speed
-                  this.mIjkMediaPlayer.setSpeed(this.playSpeed+'f');
+                  this.mIjkMediaPlayer.setSpeed(this.playSpeed + 'f');
                 })
               Slider({
                 value: this.volume,
@@ -6467,7 +6483,7 @@ export struct LocalMusic {
     this.mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_timeout", "10000000");
     // 变速播放
     this.mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", "1");
-    this.mIjkMediaPlayer.setSpeed(this.playSpeed+'f');
+    this.mIjkMediaPlayer.setSpeed(this.playSpeed + 'f');
     let Speed = this.mIjkMediaPlayer.getSpeed()
     LogUtils.getInstance().LOGI('getSpeed--' + Speed)
     //是否开启循环播放

+ 17 - 58
entry/src/main/ets/view/TitleBar.ets

@@ -487,8 +487,8 @@ export namespace TitleBar {
     onRightClickListener: () => void = () => {
     };
 
-    constructor() {
-      this.barStyleTransform(BarStyle.LIGHT);
+    constructor(isDark?:boolean) {
+      this.barStyleTransform(isDark?BarStyle.NIGHT:BarStyle.LIGHT);
     }
 
     setTitleBarNormalPadding(value: number | Resource): Model {
@@ -509,6 +509,7 @@ export namespace TitleBar {
 
     setTitleBarBackground(value: ResourceColor): Model {
       this.titleBarBackground = value;
+      console.log('Heanup: TitleBar背景色:'+JSON.stringify(value))
       return this;
     }
 
@@ -833,62 +834,20 @@ export namespace TitleBar {
      * @param value
      */
     private barStyleTransform(value: BarStyle) {
-      switch (value) {
-        case TitleBar.BarStyle.LIGHT:
-          this.setTitleBarBackground(0xFFFFFFFF);
-          this.setTitleFontColor(0xFF222222);
-
-          this.setLeftTitleStateNormalStyleColor(0xFFFFFFFF);
-          this.setLeftTitleStatePressedStyleColor(0x0C000000);
-          this.setLeftIcon($r('app.media.left_back_black'));
-          this.setLeftTitleFontColor(0xFF666666);
-
-          this.setRightTitleStateNormalStyleColor(0xFFFFFFFF);
-          this.setRightTitleStatePressedStyleColor(0x0C000000);
-          this.setRightTitleFontColor(0xFFA4A4A4);
-          break;
-        case TitleBar.BarStyle.NIGHT:
-          this.setTitleBarBackground(0xFF000000);
-          this.setTitleFontColor(0xEEFFFFFF);
-
-          this.setLeftTitleStateNormalStyleColor(0x00000000);
-          this.setLeftTitleStatePressedStyleColor(0x66FFFFFF);
-          this.setLeftIcon($r('app.media.left_back_white'));
-          this.setLeftTitleFontColor(0xCCFFFFFF);
-
-          this.setRightTitleStateNormalStyleColor(0x00000000);
-          this.setRightTitleStatePressedStyleColor(0x66FFFFFF);
-          this.setRightTitleFontColor(0xCCFFFFFF);
-          break;
-        case TitleBar.BarStyle.TRANSPARENT:
-          this.setTitleBarBackground(Color.Transparent);
-          this.setTitleFontColor(0xFFFFFFFF);
-
-          this.setLeftTitleStateNormalStyleColor(Color.Transparent);
-          this.setLeftTitleStatePressedStyleColor(0x22000000);
-          this.setLeftIcon(null);
-          this.setLeftTitleFontColor(0xFFFFFFFF);
-
-          this.setRightTitleStateNormalStyleColor(Color.Transparent);
-          this.setRightTitleStatePressedStyleColor(0x22000000);
-          this.setRightTitleFontColor(0xFFFFFFFF);
-          break;
-        case TitleBar.BarStyle.LINEARGRADIENT:
-          this.setTitleBarBackground(Color.Transparent);
-          this.setTitleFontColor(0xFFFFFFFF);
-
-          this.setLeftTitleStateNormalStyleColor(Color.Transparent);
-          this.setLeftTitleStatePressedStyleColor(0x22000000);
-          this.setLeftIcon(null);
-          this.setLeftTitleFontColor(0xFFFFFFFF);
-
-          this.setRightTitleStateNormalStyleColor(Color.Transparent);
-          this.setRightTitleStatePressedStyleColor(0x22000000);
-          this.setRightTitleFontColor(0xFFFFFFFF);
-          break;
-        default:
-          break;
-      }
+
+        this.setTitleBarBackground($r('app.color.title_bar_bg'));
+        this.setTitleFontColor($r('app.color.title_text'));
+        this.setTitleBarBottomLineColor($r('app.color.title_bar_bottom_line'));
+
+        this.setLeftTitleStateNormalStyleColor($r('app.color.title_bar_bg'));
+        this.setLeftTitleStatePressedStyleColor($r('app.color.title_bar_pressed'));
+        this.setLeftIcon($r('app.media.left_back_black'));
+        this.setLeftTitleFontColor($r('app.color.title_left_text'));
+
+        this.setRightTitleStateNormalStyleColor($r('app.color.title_bar_bg'));
+        this.setRightTitleStatePressedStyleColor($r('app.color.title_bar_pressed'));
+        this.setRightTitleFontColor($r('app.color.title_right_text'));
+
     }
   }
 

+ 21 - 1
entry/src/main/resources/dark/element/color.json

@@ -26,7 +26,7 @@
     },
     {
       "name": "title_bar_bg",
-      "value": "#FF4081"
+      "value": "#00000000"
     },
     {
       "name": "index_background",
@@ -107,6 +107,26 @@
     {
       "name": "select_swiper",
       "value": "#DBFFFFFF"
+    },
+    {
+      "name": "title_text",
+      "value": "#FFFFFF"
+    },
+    {
+      "name": "title_bar_bottom_line",
+      "value": "#333333"
+    },
+    {
+      "name": "title_bar_pressed",
+      "value": "#33FFFFFF"
+    },
+    {
+      "name": "title_left_text",
+      "value": "#FFFFFF"
+    },
+    {
+      "name": "title_right_text",
+      "value": "#CCCCCC"
     }
   ]
 }