最近看到某音乐播放器的桌面歌词如下图
其中字母“U”有两种颜色,突发奇想想模仿一下实现文字变色。
思路:使用两种颜色分别把字符串绘制到两个BufferedImage中,然后根据两种颜色所占空间的比值分别擦除两个BufferedImage中的对应内容,最后再把两个BufferedImage合为一个。
效果图
可以通过以下代码更改两种颜色的比值
StringTwoColor stc = new StringTwoColor(jl1, Color.RED, Color.gray, 0.8);//0.8为比值
更改比值后的效果图
当然,也可以只使用一个字