Android 水波纹扩散效果

项目地址下载:https://github.com/LiuJunb/RippleImageView

1.效果图:

2.使用方法:

  1. 在xml里使用RippleImageView自定义控件:

    xmlns:app="http://schemas.android.com/apk/res-auto"<com.army.rippleimage.RippleImageViewandroid:id="@+id/rippleImageView"android:layout_width="match_parent"android:layout_height="180dp"android:background="#37B158"app:show_spacing_time="800"//动画播放间隔时间app:imageViewWidth="35dp"//图片的大小app:imageViewHeigth="35dp"android:layout_centerHorizontal="true">
    </com.army.rippleimage.RippleImageView>
    
  2. 在Activity中的使用:

    rippleImageView=(RippleImageView)findViewById(R.id.rippleImageView);
    //开始动画
    rippleImageView.startWaveAnimation();//停止动画
    rippleImageView.stopWaveAnimation();
    

3.如何将自定义控件引入到项目:

  1. 拷贝自定义控件RippleImageView

    /*** Description :* Author : liujun* Email  : liujin2son@163.com*/
    public class RippleImageView extends RelativeLayout {private static final int SHOW_SPACING_TIME=700;private static final int MSG_WAVE2_ANIMATION = 1;private static final int MSG_WAVE3_ANIMATION = 2;private static final int IMAMGEVIEW_SIZE = 80;/**三张波纹图片*/private static final int SIZE =3 ;/**动画默认循环播放时间*/private  int show_spacing_time=SHOW_SPACING_TIME;/**初始化动画集*/private AnimationSet [] mAnimationSet=new AnimationSet[SIZE];/**水波纹图片*/private ImageView [] imgs=new ImageView[SIZE];/**背景图片*/private ImageView img_bg;/**水波纹和背景图片的大小*/private float imageViewWidth=IMAMGEVIEW_SIZE;private float imageViewHeigth=IMAMGEVIEW_SIZE;private Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case MSG_WAVE2_ANIMATION:imgs[MSG_WAVE2_ANIMATION].startAnimation(mAnimationSet[MSG_WAVE2_ANIMATION]);break;case MSG_WAVE3_ANIMATION:imgs[MSG_WAVE2_ANIMATION].startAnimation(mAnimationSet[MSG_WAVE3_ANIMATION]);break;}}};public RippleImageView(Context context) {super(context);initView(context);}public RippleImageView(Context context, AttributeSet attrs) {super(context, attrs);getAttributeSet(context,attrs);initView(context);}/*** 获取xml属性* @param context* @param attrs*/private void getAttributeSet(Context context, AttributeSet attrs) {TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.custume_ripple_imageview);show_spacing_time = typedArray.getInt(R.styleable.custume_ripple_imageview_show_spacing_time, SHOW_SPACING_TIME);imageViewWidth = typedArray.getDimension(R.styleable.custume_ripple_imageview_imageViewWidth, IMAMGEVIEW_SIZE);imageViewHeigth = typedArray.getDimension(R.styleable.custume_ripple_imageview_imageViewHeigth, IMAMGEVIEW_SIZE);Log.d("TAG","show_spacing_time="+show_spacing_time+"mm imageViewWidth="+imageViewWidth+"px  imageViewHeigth="+imageViewHeigth+"px");typedArray.recycle();}private void initView(Context context) {setLayout(context);for (int i = 0; i <imgs.length ; i++) {mAnimationSet[i]=initAnimationSet();}}/*** 开始动态布局*/private void setLayout(Context context) {LayoutParams params=new LayoutParams(dip2px(context,imageViewWidth),dip2px(context,imageViewHeigth));//添加一个规则params.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE);/**添加水波纹图片*/for (int i = 0; i <SIZE ; i++) {imgs[i] = new ImageView(context);imgs[i].setImageResource(R.mipmap.point_empty);addView(imgs[i],params);}LayoutParams params_bg=new LayoutParams(dip2px(context,imageViewWidth)+10,dip2px(context,imageViewHeigth)+10);//添加一个规则params_bg.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE);/**添加背景图片*/img_bg=new ImageView(context);img_bg.setImageResource(R.mipmap.point_org);addView(img_bg,params_bg);}/*** 初始化动画集* @return*/private AnimationSet initAnimationSet() {AnimationSet as = new AnimationSet(true);//缩放度:变大两倍ScaleAnimation sa = new ScaleAnimation(1f, 2f, 1f, 2f,ScaleAnimation.RELATIVE_TO_SELF, 0.5f,ScaleAnimation.RELATIVE_TO_SELF, 0.5f);sa.setDuration(show_spacing_time * 3);sa.setRepeatCount(Animation.INFINITE);// 设置循环//透明度AlphaAnimation aa = new AlphaAnimation(1, 0.1f);aa.setDuration(show_spacing_time * 3);aa.setRepeatCount(Animation.INFINITE);//设置循环as.addAnimation(sa);as.addAnimation(aa);return as;}private static int dip2px(Context context, float dipValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dipValue * scale + 0.5f);}//============================对外暴露的public方法=========================================/*** 开始水波纹动画*/public void startWaveAnimation() {imgs[0].startAnimation(mAnimationSet[0]);mHandler.sendEmptyMessageDelayed(MSG_WAVE2_ANIMATION, show_spacing_time);mHandler.sendEmptyMessageDelayed(MSG_WAVE3_ANIMATION, show_spacing_time * 2);}/*** 停止水波纹动画*/public void stopWaveAnimation() {for (int i = 0; i <imgs.length ; i++) {imgs[i].clearAnimation();}}/**获取播放的速度*/public int getShow_spacing_time() {return show_spacing_time;}/**设计播放的速度,默认是800毫秒*/public void setShow_spacing_time(int show_spacing_time) {this.show_spacing_time = show_spacing_time;}
    

    }

  2. 拷贝自定义属性到arrts下

    <declare-styleable name="custume_ripple_imageview"><attr name="show_spacing_time" format="integer"></attr><attr name="imageViewWidth" format="dimension"></attr><attr name="imageViewHeigth" format="dimension"></attr>
    </declare-styleable>
    
  3. 拷贝默认图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45515.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 自定义view实现水波纹效果

http://blog.csdn.net/tianjian4592/article/details/44222565 在实际的开发中&#xff0c;很多时候还会遇到相对比较复杂的需求&#xff0c;比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果&#xff0c;兴致高昂的来找你&#xff0c;看了之后目的很明确&#xff0c;当然就是希望…

Android点击Button水波纹效果

先上图&#xff0c;看看接下来我要向大家介绍的是个什么东西&#xff0c;如下图&#xff1a; 接下来要介绍的就是如何实现上述图中的波纹效果&#xff0c;这种效果如果大家没有体验过的话&#xff0c;可以看看百度手机卫士或者360手机卫士&#xff0c;里面的按钮点击效果都是…

unity 实现水的波纹效果

之前的实现过这个效果&#xff0c;可惜没有记笔记&#xff0c;所以现在有点遗忘&#xff0c;连多个波纹一起在水面上实现的效果都忘记了&#xff0c;所以&#xff0c;查看了下之前实现的代码&#xff0c;现在再记一下笔记。 基础的波纹效果 要实现波纹&#xff0c;首先要知道…

Android水波纹效果

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

自定义view实现水波纹效果

我正在参加 CSDN 2015博客之星评选 感恩分享活动&#xff0c;如果觉得文章还不错&#xff0c;请投个票鼓励下吧&#xff1a;http://vote.blog.csdn.net/blogstar2015/candidate?usernametianjian4592 在实际的开发中&#xff0c;很多时候还会遇到相对比较复杂的需求&#xf…

Android L中水波纹点击效果的实现

博主参加了2014 CSDN博客之星评选&#xff0c;帮我投一票吧。 点击给我投票 前言 前段时间android L&#xff08;android 5.0&#xff09;出来了&#xff0c;界面上做了一些改动&#xff0c;主要是添加了若干动画和一些新的控件&#xff0c;相信大家对view的点击效果-水波纹很…

科技云报道:垂直大模型竞争,能突破数据“卡点”吗?

科技云报道原创。 AI大模型火遍全球&#xff0c;中国产业也激发了对人工智能应用的新热情。 随着各大厂商参与竞逐&#xff0c;市场正在分化为通用与垂直两大路径&#xff0c;两者在参数级别、应用场景、商业模式等方面差异已逐步显现。 企业涌入垂直大模型赛道 通用AI大模型…

【人工智能】论未来人工智能的大模型生态:重塑技术前景与应用

目录 未来人工智能大模型生态:重塑技术前景与应用 引言 OpenAI 的 AGI 愿景

创造之境:Stable Diffusion + chatGPT下的自动绘图探索

什么是Stable Diffusion Stable Diffusion 是在2022年发布的深度学习文本到图像生成模型。它主要用于根据文字的描述生成详细图像&#xff0c;尽管它也可以应用于其他任务&#xff0c;如内插绘制、外插绘制&#xff0c;以及在提示词&#xff08;英语&#xff09;指导下生成图生…

工具 | ChatPDF:与PDF对话!

工具 | ChatPDF&#xff1a;与PDF对话&#xff01; 本文首发微信公众号&#xff1a;全副武装的大师兄 ChatPDF是什么&#xff1f; 它是一个在不到一周时间里&#xff0c;就让10万份PDF学会了聊天的应用&#xff01;无需注册&#xff0c;登录&#xff0c;通过上传PDF文件到Ch…

微信公众号 接口配置

1、登录微信公众平台-->设置与开发-->基本配置页面&#xff0c;打开服务器配置 2、在网站后台添加两个接口get请求验证和post请求消息转发&#xff0c;url为上图填写的url&#xff0c; RestController RequestMapping("/officialAccount/") public class Offic…

亚马逊评论和销量的关系都有哪些呢?

评论和销量的关系非常密切。当然不是评论越多越好&#xff0c;更合理的评论对产品的关键词排名帮助更大。就连亚马逊也会推荐一些资源&#xff0c;所以推荐和曝光越多&#xff0c;销量也会增加越多。这也是为什么卖家都在努力增加Review数量&#xff0c;甚至花钱找人做评测还免…

亚马逊评论的类型有哪些?都该怎么操作呢?

亚马逊评论对于亚马逊卖家店铺来说很重要的&#xff0c;评论又多又好的产品自然更受欢迎&#xff0c;但是评论肯定不只一种&#xff0c;那么亚马逊评论的类型有哪些&#xff1f;都该怎么操作呢&#xff1f; 亚马逊评论分为以下几种&#xff1a; 1、直评 直评是买家可以不用购…

视频会议解决方案-最新全套文件

视频会议解决方案-最新全套文件 一、建设背景二、建设思路业务挑战 三、建设方案四、获取 - 视频会议全套最新解决方案合集 一、建设背景 随着中国经济的迅速发展&#xff0c;很多企业的发展也进入快车道&#xff0c;分支机构越来越多&#xff0c;形成了遍布全国范围甚至全球范…

微软:明年 7 月之前,所有会议线上举行

By 超神经 内容提要&#xff1a;这场疫情对科技行业带来了重大影响。自 2 月以来&#xff0c;被迫取消或转至线上的科技峰会已经数不胜数。现在&#xff0c;微软已经决定&#xff0c;将明年下半年之前的所有活动转至线上&#xff0c;科技会议或许就此迎来变革&#xff1f; 关键…

智能会议纪要生成,从音视频到一键生成会议特征数据

★★★ 本文源自AI Studio社区精品项目&#xff0c;【点击此处】查看更多精品内容 >>> 零.项目背景 目标&#xff1a;针对会议场景的长视频或者长语音&#xff0c;自动生成会议记录并通过摘要生成技术形成会议摘要。 一.技术流程 1.通过moviepy 提取视频中的音频&am…

本地电脑腾讯会议PPT演讲者模式

在腾讯会议中进行PPT汇报的时候&#xff0c;有些情况我们是想要看到备注的&#xff0c;即如何实现对自己是演讲者模式&#xff0c;而对其他人展示的是报告全屏内容呢&#xff1f; 不同操作系统的电脑实现方式还不同&#xff0c;下面分别介绍&#xff1a; 对于mac系统&#xf…

会中切换网络总掉线?腾讯会议用这种方案让你好好开会

&#x1f449;腾小云导读 也许你有这样的体验&#xff1a;当你加入腾讯会议开会&#xff0c;老板正在发布重要任务时&#xff0c;你恰好要进电梯时 wifi 切换成了 cellular&#xff0c;画面开始「转菊花」&#xff0c;网络断开重连却需要好久&#xff0c;最终老板的指示你一个字…

腾讯会议的各种使用办法

如何关闭某一成员突然打开的麦克风 1.点击管理成员 2.点击关闭麦克风或者关闭视频即可 如何更换背景 1.点击设置 2.点击虚拟背景和美颜 3.选择已有背景或者点击支持图片/视频从本地进行上传 调整声音 1.点击设置 2.点击音频 3.点击音量调节

Zoom会议使用指南

一、使用手册 1、加入会议 1.1 下载ZOOM 下载ZOOM客户端&#xff1a;https://ruanshi1.8686c.com/prod/4.4.55389.0716/ZoomInstaller.exe 1.2 点击加入会议 1.3 点击会议URL或输入会议ID https://cnegroup.zoom.us/j/768131602 1.4 开始会议 2、召开会议 2.1登录Zoom 2.…