精华内容
下载资源
问答
  • 水波纹效果
    千次阅读
    2021-11-23 17:14:24

    水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了、就不再叙述了!以下记录两个常用的水波纹效果;

    有界水波纹(系统自带)

    android:background="?android:attr/selectableItemBackground"

    无界水波纹

    一般解释:以控件宽高中最大的数值作为水波纹效果所在正方形的边界进行绘制、其实和上面的没多大区别;

    android:background="?android:attr/selectableItemBackgroundBorderless"

    示例代码:layout= activity_main

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:id="@+id/flContainer"
        android:layout_height="match_parent"
        android:background="?android:attr/selectableItemBackground"
        tools:context=".MainActivity">
    
    </FrameLayout>
    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            flContainer.setOnClickListener {
    
            }
        }
    }

    别忘记一定要写onClickListener 事件 

    更多相关内容
  • css3+js实现水波纹效果

    2022-03-28 20:04:41
    css3+js实现水波纹效果,跟随点击位置为中心扩散,效果很不错,适用于主流浏览器。
  • 水波纹效果大致上可以分为两类,一类是有界水波纹,而另一类是无界水波纹,较为广泛使用的是有界水波纹。 系统自带的水波纹实现 系统自带的方法非常方便,只需要给相应的空间设置背景,背景内容则为系统自带的 ...
  • 主要介绍了Android实现点击Button产生水波纹效果,需要的朋友可以参考下
  • WaterRipple:使用Qt小部件在可选图像上播放水波纹效果的动画
  • 正弦实现水波纹效果

    2017-08-22 15:47:38
    简单方便实现多条水波纹动态效果
  • react native 实现水波纹效果,效果非常棒哦
  • C语言实现水波纹效果

    2020-12-31 04:56:06
    本文实例为大家分享了C语言实现水波纹效果的具体代码,供大家参考,具体内容如下 #include #include #include #define PIC_HEIGHT 600 #define PIC_WIDTH 800 void FrameFun(); // 帧逻辑函数,处理每一帧的...
  • 本文为大家分享了Android实现水波纹效果展示的具体代码,供大家参考,具体内容如下 一、效果 二、实现原理 自定义view,使用Path和贝塞尔曲线绘制,然后不断刷新,并且改变X、Y的值 主要知识点rQuadTo的使用  三、...
  • 使用three.js绘制的具有立体感的水波效果,里面涉及很多算法,没有思路的同学可以借鉴一下。
  • 水波纹效果

    2018-02-05 20:07:40
    基于微软 wpf 3D helix toolkit 制作的水波纹效果
  • 水波纹效果Shader

    2018-12-22 15:41:30
    水波纹效果,点击出现一圈圈水面波纹,使用shader编写
  • 答案就是用“叠”的方式,这个水波纹效果的原理其实就是用六个div叠在一起,接着最重要的就是将背景设为固定:background-attachment:fixed;,然后让背景的尺寸有大有小,就可以完成了,只要把六个div叠在一起,...
  • Flutter InkWell水波纹效果
  • CSS实现水波纹效果

    2022-02-10 11:45:54
    CSS实现水波纹效果 记录如下以供以后使用 效果图如下 代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ...

    CSS实现水波纹效果

    记录如下以供以后使用

    效果图如下

    在这里插入图片描述

    代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
         <style>
          .app {
            width: 100%;
            height: 800px;
            background-color: #262c50;
            position: relative;
            overflow: hidden;
          
         }
          .china-map{width:1000px;height:620px;background:url('./map_black_bg.png') center no-repeat;position:relative;margin: 0 auto;}
          .region-list{position:relative;left:0;top:0}
        
          @-webkit-keyframes warn{
          0%{-webkit-transform:scale(0);transform:scale(0);opacity:1}
          100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}
          }
          @-moz-keyframes warn{
          0%{-moz-transform:scale(0);transform:scale(0);opacity:1}
          100%{-moz-transform:scale(1);transform:scale(1);opacity:0}
          }
          @-o-keyframes warn{
          0%{-o-transform:scale(0);transform:scale(0);opacity:1}
          100%{-o-transform:scale(1);transform:scale(1);opacity:0}
          }
          @keyframes warn{
          0%{-webkit-transform:scale(0);-moz-transform:scale(0);-o-transform:scale(0);transform:scale(0);opacity:1}
          100%{-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:0}
          }
          .area-box .dot{position:absolute;left:0;width:10px;height:10px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:#a2a9b4;opacity:1;filter:alpha(opacity=100)}
          .area-box .pulse{position:absolute;top:-28px;left:-28px;height:66px;width:66px;border:2px solid #b7b7b7;-webkit-border-radius:48px;-moz-border-radius:48px;border-radius:48px;-webkit-box-shadow:0 0 4px #82878f,0 0 10px #82878f inset;-moz-box-shadow:0 0 4px #82878f,0 0 10px #82878f inset;box-shadow:0 0 4px #82878f,0 0 10px #82878f inset;opacity:.12;filter:alpha(opacity=0);-webkit-animation:warn 2s ease-out both;-moz-animation:warn 2s ease-out both;-o-animation:warn 2s ease-out both;animation:warn 2s ease-out both;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-o-animation-iteration-count:infinite;animation-iteration-count:infinite;background:0 0}
          .area-box .delay-01{-webkit-animation-delay:0;-moz-animation-delay:0;-o-animation-delay:0;animation-delay:0}
          .area-box .delay-02{-webkit-animation-delay:.4s;-moz-animation-delay:.4s;-o-animation-delay:.4s;animation-delay:.4s}
          .area-box .delay-03{-webkit-animation-delay:.8s;-moz-animation-delay:.8s;-o-animation-delay:.8s;animation-delay:.8s}
          .area-box .delay-04{-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s;-o-animation-delay:1.2s;animation-delay:1.2s}
          .area-box .delay-05{-webkit-animation-delay:1.6s;-moz-animation-delay:1.6s;-o-animation-delay:1.6s;animation-delay:1.6s}
          .area-box .delay-06{-webkit-animation-delay:2s;-moz-animation-delay:2s;-o-animation-delay:2s;animation-delay:2s}
          .area-box .delay-07{-webkit-animation-delay:2.4s;-moz-animation-delay:2.4s;-o-animation-delay:2.4s;animation-delay:2.4s}
          .area-box .delay-08{-webkit-animation-delay:-.4s;-moz-animation-delay:-.4s;-o-animation-delay:-.4s;animation-delay:-.4s}
          .area-box .delay-09{-webkit-animation-delay:-.8s;-moz-animation-delay:-.8s;-o-animation-delay:-.8s;animation-delay:-.8s}
          .area-box .delay-10{-webkit-animation-delay:-1.2s;-moz-animation-delay:-1.2s;-o-animation-delay:-1.2s;animation-delay:-1.2s}
          .area-box .delay-11{-webkit-animation-delay:4s;-moz-animation-delay:4s;-o-animation-delay:4s;animation-delay:4s}
          .region-list.active .area-box .dot{background:#009fd9}
          .region-list.active .area-box .pulse{border-color:#009fd9;top:-41px;left:-41px;height:88px;width:88px;-webkit-box-shadow:0 0 12px #0080d9,0 0 20px #0080d9 inset;-moz-box-shadow:0 0 12px #0080d9,0 0 20px #0080d9 inset;box-shadow:0 0 12px #0080d9,0 0 20px #0080d9 inset}
          .region-list.waite .area-box .dot{background:#f90}
          .region-list.waite .area-box .pulse{border-color:#f90;top:-41px;left:-41px;height:88px;width:88px;-webkit-box-shadow:0 0 12px #f90,0 0 20px #f90 inset;-moz-box-shadow:0 0 12px #f90,0 0 20px #f90 inset;box-shadow:0 0 12px #f90,0 0 20px #f90 inset}
          .show-regin{position:absolute;left:2px;height:0;top:0;width:11px;opacity:0;-o-transition:all .5s ease-in-out;-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;transition:all .5s ease-in-out}
          .online-node .show-regin,.region-list:hover .show-regin,.underline-node .show-regin,.waite-node .show-regin{height:127px;opacity:1}
          .show-regin span{width:80px;position:absolute;left:8px;top:-11px;padding:6px 10px;font-size:14px;color:#ccc;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;text-align:center;white-space:nowrap;}
          .postition-10 .show-regin span{left:0}
          .postition-6 .show-regin span{left:-72px}
          .area-box{z-index:77}
          .show-regin{z-index:66}
          .region-list.active .show-regin span{position:relative;color:#ccc}
          .region-list.waite .show-regin span{position:relative;color:#ccc}
          .postition-4{left:68%;top:38%}
          .postition-4.region-list.active .area-box .pulse{top:-50px;left:-50px;width:110px;height:110px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}
          .postition-7.region-list.active .area-box .pulse{top:-50px;left:-50px;width:110px;height:110px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}
          .postition-8{left:66%;top:84%}
          .postition-9{left:77%;top:61%}
          .postition-11{left:70%;top:48%}
          .solution-header-1 {
              max-width: 1210px;
              margin-left: auto;
              margin-right: auto;
              text-align: center;
          }
          .solution-header-1 h2 {
              margin-bottom: 10px;
              font-size: 36px;
              line-height: 46px;
              text-align: center;
              color: #FAFBFE;
              font-weight: inherit;
          }
          .solution-header-1 p {
              font-size: 18px;
              line-height: 22px;
              text-align: center;
              color: #FFFFFF;
              opacity: 0.6;
          }
         
          @-webkit-keyframes bgScroll {
              from {
                  -webkit-transform: translateY(0);
                  transform: translateY(0)
              }
          
              to {
                  -webkit-transform: translateY(-33.333%);
                  transform: translateY(-33.333%)
              }
          }
          @keyframes bgScroll {
              from {
                  -webkit-transform: translateY(0);
                  transform: translateY(0)
              }
              to {
                  -webkit-transform: translateY(-33.333%);
                  transform: translateY(-33.333%)
              }
          }
          </style> 
    </head>
    <body>
      <div class="app">
    
            <div class="solution-header-1" >
              <h2>纯CSS实现水波纹效果</h2>
                <p>纯CSS实现水波纹效果</p>
            </div>
       
    
          <div style="text-align: center">
            <div class="china-map">
              <div class="region-list waite postition-4 waite-node">
                <div class="area-box">
                  <span class="dot"></span>
                  <span class="pulse delay-01"></span>
                  <span class="pulse delay-02"></span>
                  <span class="pulse delay-03"></span>
                </div>
                <div class="show-regin">
                  <span>北京</span>
                </div>
              </div>
              <div class="region-list  active  postition-11 online-node">
                <div class="area-box">
                  <span class="dot"></span>
                  <span class="pulse delay-06"></span>
                  <span class="pulse delay-05"></span>
                  <span class="pulse delay-04"></span>
                </div>
                <div class="show-regin">
                  <span>山东</span>
                </div>
              </div>
              <div class="region-list active postition-8 online-node">
                <div class="area-box">
                  <span class="dot"></span>
                  <span class="pulse delay-06"></span>
                  <span class="pulse delay-05"></span>
                  <span class="pulse delay-04"></span>
                </div>
                <div class="show-regin">
                  <span>广州</span>
                </div>
              </div>
              <div class="region-list active postition-9 online-node">
                <div class="area-box">
                  <span class="dot"></span>
                  <span class="pulse delay-06"></span>
                  <span class="pulse delay-05"></span>
                  <span class="pulse delay-04"></span>
                </div>
                <div class="show-regin">
                  <span>上海</span>
                </div>
              </div>
            </div>
          </div>
      </div>
    
    </body>
    </html>
    

    背景图
    在这里插入图片描述

    2、另在网上找到另一种效果实现

    (1)效果图

    在这里插入图片描述

    (2)代码如下

    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>水波纹效果</title>
            <style>
                * {
                    margin: 0;
                    padding: 0;
                }           
                html,
                body {
                    height: 100%;
                    overflow: hidden;
                }           
                @-webkit-keyframes wateranimate {
                    0% {
                        -webkit-transform: scale(0);
                        opacity: 0.5;
                    }
                    100% {
                        -webkit-transform: scale(2);
                        opacity: 0;
                    }
                }
                @keyframes wateranimate {
                    0% {
                        -webkit-transform: scale(0);
                        transform: scale(0);
                        opacity: 0.5;
                    }
                    100% {
                        -webkit-transform: scale(2);
                        transform: scale(2);
                        opacity: 0;
                    }
                }           
                .container {
                    position: relative;
                    width: 500px;
                    height: 500px;
                    margin: 50px auto;
                    border: 1px solid yellow;
                }           
                .water1 {
                    -webkit-animation: wateranimate 12s 9s ease-out infinite;
                    animation: wateranimate 12s 9s ease-out infinite;
                }           
                .water2 {
                    -webkit-animation: wateranimate 12s 6s ease-out infinite;
                    animation: wateranimate 12s 6s ease-out infinite;
                }           
                .water3 {
                    -webkit-animation: wateranimate 12s 3s ease-out infinite;
                    animation: wateranimate 12s 3s ease-out infinite;
                }           
                .water4 {
                    -webkit-animation: wateranimate 12s 0s ease-out infinite;
                    animation: wateranimate 12s 0s ease-out infinite;
                }           
                .water1, .water2, .water3, .water4 {
                    padding: 20%;
                    position: absolute;
                    left: 30%;
                    top: 30%;
                    border: 1px solid pink;
                    box-shadow: 0 0 120px 30px rgba(235, 31, 137, 1) inset;
                    border-radius: 100%;
                    z-index: 1;
                    opacity: 0;
                }
            </style>
        </head>
        <body>
            <div class="container">
                <div class="water1"></div>
                <div class="water2"></div>
                <div class="water3"></div>
                <div class="water4"></div>
            </div>
        </body>
    </html>
    
    展开全文
  • Android实现水波纹点击效果只... 圆角背景的水波纹效果(如上图) 1. 定义一个普通圆角背景的xml; rounded_corners.xml <?xml version=1.0 encoding=utf-8?> android:shape=rectangle> <corners andro
  • 近来看到个不错的按钮点击效果,当点击时产生一次水波涟漪效果,挺好玩的,于是简单的实现了下(没考虑低版本浏览器兼容问题) 先看看效果吧,如下图(录制gif软件有点渣,看起来卡卡的…) 这种效果可以由元素内嵌套...
  • Android水波纹效果

    2022-05-10 18:20:32
    Android水波纹加载效果

     

           日常的Android开发中可能大家都见过类似这种水波纹展开的效果,比如加载一张图片的时候使用水波纹加载,其实这种实现非常简单。因为Google已经为我们提供了一个非常方便地工具类

    ViewAnimationUtils

          它的实现非常简单,就这个类,其中有个方法如下

    createCircularReveal(View view,
            int centerX,  int centerY, float startRadius, float endRadius)

          该方法的作用就是实例化一个RevealAnimator,该Animator包含了水波纹效果的属性设置。其中的5个参数非常好理解,含义如下:

    view——为水波纹效果关联的视图

    centerX——水波纹扩散的中心点x坐标

    centerY——水波纹扩散的中心点y坐标

    startRadius——水波纹扩散前的初始半径

    endRadius——水波纹扩散后的结束半径

          该方法的强大之处就在于你可以结合动画的加速器和持续时间来自定义效果,此外水波纹的起始扩展位置也是可以非常灵活地定制的。

          核心代码其实非常简单,下面的代码实现了整体布局从左上角水波纹展开的效果+图片点击从中间水波纹展开的效果

    class TestMDAnimActivity : AppCompatActivity() {
        private lateinit var mClyContainer: ConstraintLayout
    
        private lateinit var mImgBg: AppCompatImageView
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_test_mdanim)
    
            initWidgets()
    
            addListeners()
        }
    
        private fun initWidgets() {
            mClyContainer = findViewById(R.id.cly_container)
            mImgBg = findViewById(R.id.img_bg)
    
            mClyContainer.post {
                // 这两个动画只有前面的可以执行,所以采用该方式想实现两个水波纹碰撞效果是不可行的
                val anim2 = ViewAnimationUtils.createCircularReveal(
                    mClyContainer,
                    resources.displayMetrics.widthPixels,
                    resources.displayMetrics.heightPixels,
                    10F,
                    2000F
                )
    
                val anim1 = ViewAnimationUtils.createCircularReveal(
                    mClyContainer,
                    100,
                    100,
                    10F,
                    2000F
                )
    
                val animSet = AnimatorSet().apply {
                    duration = 1000
                    interpolator = AccelerateDecelerateInterpolator()
                    playTogether(anim1, anim2)
                    start()
                }
            }
        }
    
        private fun addListeners() {
            mImgBg.setOnClickListener {
                ViewAnimationUtils.createCircularReveal(
                    mImgBg,
                    it.width / 2,
                    it.height / 2,
                    10F,
                    2000F
                ).apply {
                    duration = 1000
                    interpolator = AccelerateDecelerateInterpolator()
                    start()
                }
            }
        }
    }

    展开全文
  • 主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 按钮点击水波纹效果

    2016-01-04 15:04:23
    百度手机卫士或者360手机卫士,里面的按钮点击效果都是这样的,我们自己实现一个layout,在layout中捕捉事件,并对事件进行相应的处理,在down事件中寻找当前用户点击的是哪个view,找出view所在的矩形区域,将一个...
  • Android开发中的水波纹效果实现,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/73200900
  • 通过drawBitmapMesh 实现水波纹效果.zip,模拟真实的水波效应。
  • 主要为大家详细介绍了RecyclerView实现水波纹点击效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android 按钮实现按压水波纹效果

    千次阅读 2021-08-16 20:53:54
    selectableItemBackground" 即可实现水波纹效果。 但是这需要在API23 也就是说需要在Android6.0系统的手机上面,才会有效果。 方法二: 给Button按钮设置背景 <?xml version="1.0" encoding="utf-8"?> <...

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
    👉点击跳转到网站

    方法一:

    在控件中加入android:foreground="?selectableItemBackground" 即可实现水波纹的效果。
    但是这需要在API23 也就是说需要在Android6.0系统的手机上面,才会有效果。

    方法二:

    给Button按钮设置背景

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".RippleActivity">
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/ripple"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="水波纹效果"
            android:textSize="20sp"
            android:textColor="@color/white"
            />
    </LinearLayout>
    

    在drawable文件中设置ripple.xml
    用水波纹标签 设置水波纹的颜色,和Button按钮的样式:

    <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="#ffffff"
        >
        <item android:drawable="@drawable/btn_ripple"/>
    
    </ripple>
    

    其中btn_ripple.xml属性如下:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle"
        >
        <solid android:color="#11EA09"/>
        <corners android:radius="25dp"/>
    </shape>
    

    我水波纹按压颜色设置的是白色,这样能看的更直观。
    效果如图所示:
    在这里插入图片描述

    展开全文
  • 水波纹效果分为两种:有界水波纹和无界水波纹。都通过系统自带的动画文件实现。 有界水波纹: 有界水波纹通过系统自带的动画文件selectableItemBackground实现只要将其设置为控件的背景即可。简单写几句代码: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,049
精华内容 3,219
关键字:

水波纹效果