使用miwallpaper桌面字体不自适应颜色的临时解决方案

由于使用百变壁纸导致桌面字体暂时无法自动变色,导致通知栏、桌面图标、负一屏时间颜色出现不易识别导致的问题,现给出临时解决方案:

1、通知栏解决方案:底层加背景;

2、桌面文字解决方案:修改颜色值;

3、负一屏解决方案:在桌面首屏左滑进入负一屏,作出相应的判断,在负一屏显示相应的深色背景即可。

总之呢,原理就是这样:在首屏和负一屏之间切换时,在全局变量 wallpaper_offset_x 正常输出的情况下为0,本教程简单易懂阐述原理,希望大家能想出更科学严谨的算法~~

PS:

负一屏的背景效果不完美之处在于:

1、首次应用主题后桌面无法正常输出 wallpaper_offset_x,需要锁定屏幕重新开屏将自动获取该值;

2、当用户在负一屏点击home键返回桌面,背景不会消失的问题,这时候需要再监测一下wallpaper_offset_x是否已经不为0,从第二屏开始消失。(也可继续通过clock2x4发送广播的方法来确定是否回到正常桌面)

 

负一屏方案示例:

<MiWallpaper version=”1″ screenWidth=”1080″ frameRate=”30″>

<Var name=”mix_h” expression=”ifelse(#raw_screen_height == 2040,2040,#raw_screen_height == 2160,2160,1920)” />

<Rectangle x=”0″ y=”0″ w=”1080″ h=”#mix_h” fillColor=”#ffffff”/>

<Rectangle x=”0″ y=”0″ w=”1080″ h=”60″ fillColor=”#70000000″/>

<Var name=”Ani”>

<VariableAnimation initPause=”true” loop=”false”>

<AniFrame value=”0″ time=”0″ easeType=”QuartEaseOut”/>

<AniFrame value=”255″ time=”300″ easeType=”QuartEaseOut”/>

<AniFrame value=”0″ time=”600″/>

</VariableAnimation>

</Var>

<Button x=”0″ y=”0″ w=”1080″ h=”#mix_h”>

<Triggers>

<!– 进入负一屏展示深色背景 –>

<Trigger action=”up”>

<MultiCommand condition=”#wallpaper_offset_x == 0″>   ///  敲黑板!!重点在这里,在负一屏处切换以wallpaper_offset_x偏移量为0作为判断逻辑。

<AnimationCommand target=”Ani” command=”play(0,300)” condition=”(#touch_x-#touch_begin_x) }= 0″/>

<AnimationCommand target=”Ani” command=”play(300,600)” condition=”(#touch_x-#touch_begin_x) {= 0″/>

</MultiCommand>

</Trigger>

<!– 回到正常桌面恢复动画 –>

<Trigger action=”down” >

<AnimationCommand target=”Ani” command=”play(0,0)” condition=”(#wallpaper_offset_x } 0) ** (#Ani == 255)”/>

</Trigger>

</Triggers>

</Button>

<Text x=”40″ y=”200″ w=”1000″ multiLine=”true” color=”#ff0000″ size=”50″ text=”桌面使用百变壁纸导致桌面文字、通知栏以及负一屏时间自适应变色失效。”/>

<Text x=”40″ y=”400″ w=”1000″ multiLine=”true” color=”#ff0000″ size=”50″ text=”通知栏解决方案:底层加背景”/>

<Text x=”40″ y=”550″ w=”1000″ multiLine=”true” color=”#ff0000″ size=”50″ text=”桌面文字解决方案:修改颜色值”/>

<Text x=”40″ y=”700″ w=”1000″ multiLine=”true” color=”#ff0000″ size=”50″ text=”负一屏解决方案:在桌面首屏左滑进入负一屏,作出相应的判断,在负一屏显示相应的深色背景即可(本教程)”/>

<Rectangle x=”0″ y=”0″ w=”1080″ h=”#mix_h” strokeColor=”#00000000″ fillColor=”#ff000000″ alpha=”#Ani” visibility=”#wallpaper_offset_x == 0″>

<FillShaders>

<LinearGradient x=”540″ y=”0″ x1=”540″ y1=”#mix_h” tile=”clamp”>

<GradientStop color=”#002e6d” position=”0″/>

<GradientStop color=”#ffffff” position=”1″/>

</LinearGradient>

</FillShaders>

</Rectangle>

</MiWallpaper>

7 条评论

  • 匿名 2017年10月16日 回复

    不好用啊 用户把负一屏关闭了,在首页右滑怎么办,要出问题的

  • 匿名 2017年9月12日 回复

  • 匿名 2017年9月11日 回复

    这个方法肯定不行的,首先要保证用户更换壁纸后正常,如果像这样修改桌面文字颜色值为黑色,那么换深色普通壁纸后就看不见了。

    • Sunny 2017年9月12日 回复 作者

      那你就不要做浅色壁纸,这是个取舍的过程。
      你这样想,我这套主题就配这套壁纸。

  • 灵貓 2017年9月11日 回复

    赞哦解决了我的难题

  • 楚霸王 2017年9月11日 回复

    sunny,帮我捡一下肥皂

    • Sunny 2017年9月11日 回复 作者

      妈妈说不是我掉的不要捡

发表评论

电子邮件地址不会被公开。

©2015-2016 zhutidasai.com. 版权所有 京ICP备16041368号-3