iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现流动的渐变色边框效果
  • 378
分享到

Android实现流动的渐变色边框效果

2024-04-02 19:04:59 378人浏览 薄情痞子
摘要

目录前言实现思路总结前言 记得在介绍 motion_toast 一篇的时候,开篇有一张动图,边框是渐变色而且感觉是流动的。这个动效挺有趣的,当时也有人问怎么实现,经过上一篇《让你的聊

前言

记得在介绍 motion_toast 一篇的时候,开篇有一张动图,边框是渐变色而且感觉是流动的。这个动效挺有趣的,当时也有人问怎么实现,经过上一篇《让你的聊天气泡丰富多彩!》后,有了实现思路了。

实现思路

首先要实现但是渐变色边框,这个其实可以参考上一篇的CustomPaint 的渐变填充实现。绘制一个矩形边框,然后让渐变色的区域填充到矩形区域内就可以了。

void paint(canvas canvas, Size size) {
  final rectWidth = 300.0, rectHeight = 100.0;
  Rect rect = Offset(
          size.width / 2 - rectWidth / 2, size.height / 2 - rectHeight / 2) &
      Size(rectWidth, rectHeight);
  final paint = Paint()
    ..shader = LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: colors,
      ),
    ).createShader(rect)
    ..style = PaintingStyle.stroke
    ..strokeWidth = 8.0;
  canvas.drawRect(rect, paint);
}

绘制出来的效果如下图所示。

然后是让渐变色流动起来,这里就需要动画了,通过动画控制渐变填充的角度,周而复始就能够形成不断流动的效果。这里还是要用到 LinearGradienttransfORM 属性。Flutter 内置了一个GradientRotation旋转变换的类,正好可以进行角度变换实现角度控制,GradientRotation 接收一个角度值实现对渐变的角度控制,下面是0度和90度的对比图,可以看到0度到90度边框的渐变色起始位置正好是旋转了90度。

有了以上两个基础,我们通过一个 Animation 对象动画过程中的值来控制旋转角度就可以了。

void paint(Canvas canvas, Size size) {
  final rectWidth = 300.0, rectHeight = 100.0;
  Rect rect = Offset(
          size.width / 2 - rectWidth / 2, size.height / 2 - rectHeight / 2) &
      Size(rectWidth, rectHeight);
  final paint = Paint()
    ..shader = LinearGradient(
      begin: Alignment.topCenter,
      end: Alignment.bottomCenter,
      colors: colors,
      transform: GradientRotation(
        animation * 2 * pi,
      ), //改变 transform 值实现渐变旋转效果
    ).createShader(rect)
    ..style = PaintingStyle.stroke
    ..strokeWidth = 8.0;
  canvas.drawRect(rect, paint);
}

动画配置代码如下,2秒旋转一周,使用 Curves.linear 实现匀速旋转。

class _GradientBoundDemoState extends State<GradientBoundDemo>
    with SingleTickerProviderStateMixin {
  late Animation<double> animation;
  late AnimationController controller;

  @override
  void initState() {
    super.initState();
    controller =
        AnimationController(duration: const Duration(seconds: 2), vsync: this);
    animation = Tween<double>(begin: 0, end: 1.0).animate(CurvedAnimation(
      parent: controller,
      curve: Curves.linear,
    ))
      ..addListener(() {
        setState(() {});
      });
    controller.repeat();
  }
  
  //...
}

实现的效果如下所示。

调整一下颜色和 LinearGradientbeginend 参数,还可以实现一些有趣的效果。下面这个效果就和开篇那个效果有点接近了。

如果是画成圆圈边框的话,做 Loading 效果其实也不错。

源码已经提交至:绘图相关源码,文件名为:gradient_bound_demo.dart

总结

本篇介绍了自定义绘制渐变色边框,并通过动画实现流动的效果,绘图加动画组合能够实现很多既有创意又有取的效果,大家也可以尝试一下看看有哪些有趣的玩法。

到此这篇关于Android实现流动的渐变色边框效果的文章就介绍到这了,更多相关Android渐变色边框内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android实现流动的渐变色边框效果

本文链接: https://www.lsjlt.com/news/151513.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现流动的渐变色边框效果
    目录前言实现思路总结前言 记得在介绍 motion_toast 一篇的时候,开篇有一张动图,边框是渐变色而且感觉是流动的。这个动效挺有趣的,当时也有人问怎么实现,经过上一篇《让你的聊...
    99+
    2024-04-02
  • Android实现颜色渐变动画效果
    目录前言一、Android中插值器TypeEvaluator二、案例效果实现1.利用Android自带的颜色插值器ArgbEvaluator2.看看Android自带颜色插值器Arg...
    99+
    2024-04-02
  • Android Textview实现颜色渐变滚动效果
    本文实例为大家分享了Android颜色渐变滚动展示的具体代码,供大家参考,具体内容如下public class FlashTextView extends android.support.v7.widget.AppCompatTextVie...
    99+
    2023-05-30
    android textview 渐变
  • Android怎么实现颜色渐变动画效果
    本篇内容主要讲解“Android怎么实现颜色渐变动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android怎么实现颜色渐变动画效果”吧!效果图:一、Android中插值器TypeEva...
    99+
    2023-06-30
  • android颜色渐变动画效果怎么实现
    在Android中,你可以使用ValueAnimator和ArgbEvaluator类来实现颜色渐变动画效果。下面是一个简单的示例代...
    99+
    2023-08-18
    android
  • Flutter实现渐变色加描边字体效果
    目录写在前面内容实现描边实现渐变一些调整参考写在前面 实现如下图的效果,这个数字的内部和外部都有渐变色。 内容 实现描边 在网上搜索一轮,可以看到通过用 Stack,来让两个 Te...
    99+
    2024-04-02
  • Android实现背景颜色滑动渐变效果的全过程
    目录前言一、介绍一下GradientDrawable二、实现三、源码:总结前言 今天和朋友聊到这个功能,刚开始的想法是自定义view,如何进行滑动监听,经过一列操作完成效果后,发现...
    99+
    2024-04-02
  • CSS属性实现渐变边框效果的技巧
    CSS属性实现渐变边框效果的技巧,需要具体代码示例在网页设计中,边框是一个重要的元素,能够为页面带来更加丰富的视觉效果。而如果能够在边框上实现渐变效果,将进一步增加页面的吸引力。本文将介绍一些使用CSS属性实现渐变边框效果的技巧,并提供具体...
    99+
    2023-11-18
    边框 渐变 CSS属性
  • CSS如何实现动态渐变色边框围绕内容区域旋转的效果
    这篇文章将为大家详细讲解有关CSS如何实现动态渐变色边框围绕内容区域旋转的效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图&emsp;&emsp;...
    99+
    2024-04-02
  • Android如何实现渐变色水波纹效果
    这篇文章主要介绍了Android如何实现渐变色水波纹效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。项目中使用到的效果,效果图如下:代码实现:public cla...
    99+
    2023-06-21
  • HTML+CSS如何实现文本效果、渐变效果、边框图片效果
    这篇文章给大家分享的是有关HTML+CSS如何实现文本效果、渐变效果、边框图片效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文本阴影文本裁剪文本描边文本填充线性渐变径向渐变边...
    99+
    2024-04-02
  • html5如何添加渐变边框效果
    这篇文章主要介绍了html5如何添加渐变边框效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   1、边框与背景   半透明边框  ...
    99+
    2024-04-02
  • CSS怎么实现颜色渐变效果
    这篇文章主要介绍“CSS怎么实现颜色渐变效果”,在日常操作中,相信很多人在CSS怎么实现颜色渐变效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS怎么实现颜色渐变效果”...
    99+
    2024-04-02
  • Kotlin使用TransitionDrawable实现颜色渐变效果流程讲解
    目录1 导入需要渐变的图片2 activity_main.xml3 MainActivity.kt1 导入需要渐变的图片 如果需要实现图片之间的渐变效果,我们需要两张照片,这样才能实...
    99+
    2023-02-16
    Kotlin TransitionDrawable实现颜色渐变 Kotlin颜色渐变效果 Kotlin TransitionDrawable颜色渐变
  • html5怎么实现Photoshop渐变色效果
    这篇文章主要讲解了“html5怎么实现Photoshop渐变色效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5怎么实现Photoshop渐变色效...
    99+
    2024-04-02
  • html5如何实现Photoshop渐变色效果
    小编给大家分享一下html5如何实现Photoshop渐变色效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 代码如下: <!DOCTYPE html><head&...
    99+
    2024-04-02
  • 如何使用CSS制作渐变的边框效果
    CSS是网页设计中重要的一部分,它可以为网页添加各种各样的效果。其中,制作渐变的边框效果是一个常见的需求。通过使用CSS的渐变属性,我们可以轻松地实现这一效果。本文将介绍如何使用CSS制作渐变的边框效果,并附上具体的代码示例。一、线性渐变边...
    99+
    2023-10-21
    CSS 渐变 边框效果
  • css3怎么实现input输入框颜色渐变发光效果
    这篇文章主要讲解了“css3怎么实现input输入框颜色渐变发光效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3怎么实现input输入框颜色渐变发...
    99+
    2024-04-02
  • css怎么实现随鼠标移动div渐变色效果
    这篇文章主要讲解了“css怎么实现随鼠标移动div渐变色效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css怎么实现随鼠标移动div渐变色效果”吧!HT...
    99+
    2024-04-02
  • 使用CSS3怎么实现颜色渐变效果
    本篇文章给大家分享的是有关使用CSS3怎么实现颜色渐变效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<h2 class="site__title&...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作