短视频软件开发,各个图标自带渐变色效果

短视频软件开发,各个图标自带渐变色效果实现的相关代码

ColorGradient.java:

 

1
<br>public class ColorGradient extends View {<br>    public ColorGradient(Context context) {<br>        super(context);<br>    }<br>    public ColorGradient(Context context, @Nullable AttributeSet attrs) {<br>        super(context, attrs);<br>        animation();<br>    }<br>    public ColorGradient(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {<br>        super(context, attrs, defStyleAttr);<br>    }<br>    private void animation(){<br>        ValueAnimator colorAnim = ObjectAnimator.ofInt(this, "backgroundColor", RED, BLUE);<br>        colorAnim.setDuration(4000);<br>        colorAnim.setEvaluator(new MyColorEvaluator());<br>        colorAnim.setRepeatCount(ValueAnimator.INFINITE);<br>        colorAnim.setRepeatMode(ValueAnimator.REVERSE);<br>        colorAnim.start();<br>    }<br>    <br>}

​MyColorEvaluator.java:

 

1
<br>public class MyColorEvaluator implements TypeEvaluator<Integer> {<br>    float[] startHsv=new float[3];<br>    float[] endHsv=new float[3];<br>    float[] outHsv=new float[3];<br>    @Override<br>    public Integer evaluate(float fraction, Integer startValue, Integer endValue) {<br>        Color.colorToHSV(startValue,startHsv);<br>        Color.colorToHSV(endValue,endHsv);<br>        int alpha = startValue >> 24 + (int) ((endValue >> 24 - startValue >> 24) * fraction);<br>        // 计算当前动画完成度(fraction)所对应的颜色值<br>        if (endHsv[0] - startHsv[0] > 180) {<br>            endHsv[0] -= 360;<br>        } else if (endHsv[0] - startHsv[0] < -180) {<br>            endHsv[0] += 360;<br>        }<br>        outHsv[0] = startHsv[0] + (endHsv[0] - startHsv[0]) * fraction;<br>        if (outHsv[0] > 360) {<br>            outHsv[0] -= 360;<br>        } else if (outHsv[0] < 0) {<br>            outHsv[0] += 360;<br>        }<br>        outHsv[1]=startHsv[1]+(endHsv[1]-startHsv[1])*fraction;<br>        outHsv[2]=startHsv[2]+(endHsv[2]-startHsv[2])*fraction;<br>        return Color.HSVToColor(alpha,outHsv);<br>    }<br>}

 

以上就是 短视频软件开发,各个图标自带渐变色效果实现的相关代码,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(113)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示