短视频软件开发,各个图标自带渐变色效果
短视频软件开发,各个图标自带渐变色效果实现的相关代码
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>} |
以上就是 短视频软件开发,各个图标自带渐变色效果实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现