继续实现仿抖音底部导航

今天要实现效果如下图

首先在原基础的布局中加入一个ImageView

<LinearLayoutandroid:layout_width="wrap_content"android:orientation="vertical"android:id="@+id/nav_top"android:layout_centerInParent="true"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:text="标题"android:id="@+id/nav_item_tv_title"android:textColor="#F1F1F1"android:textSize="16sp"android:layout_height="wrap_content" /><!--新加入的--><ImageViewandroid:id="@+id/reflash"android:layout_width="25dp"android:src="@mipmap/shuaxin"android:visibility="gone"android:layout_centerInParent="true"android:layout_height="25dp" />
</LinearLayout>复制代码

这里附上刷新的图片素材

然后在原代码中进行修改以实现导航的动画及刷新功能

1.添加是否显示刷新图片的标记

//默认设为flase
private boolean isShowReflashImage=false;
//并添加set方法
public void setShowReflashImage(boolean showReflashImage) {isShowReflashImage = showReflashImage;
}复制代码

2.然后修改激活和取消激活的方法

public void startActive(){//根据上一步添加的标记来判断是否显示ImageViewif(isShowReflashImage){textView_title.setVisibility(GONE);imageView_Shuaxin.setVisibility(VISIBLE);}else {textView_title.setTextColor(Color.WHITE);textView_title.setTextSize(18);}textView_line.animate().alpha(1).setDuration(200).start();
}
public void cancelActive(){if(isShowReflashImage){textView_title.setVisibility(VISIBLE);imageView_Shuaxin.setVisibility(GONE);textView_line.setAlpha(0);}else {textView_title.setTextColor(Color.parseColor("#F1F1F1"));textView_title.setTextSize(16);}textView_line.animate().alpha(0).setDuration(200).start();
}复制代码

3.给负责刷新的ImageView添加旋转动画

private void initListener() {final Animation rotateAnimation = new RotateAnimation(0,-360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);rotateAnimation.setDuration(300);imageView_Shuaxin.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {imageView_Shuaxin.startAnimation(rotateAnimation);}});
}复制代码

4.最后加上刷新事件

1)新建NavItemReflashListener

public interface NavItemReflashListener {void onReflash(View v);
}复制代码

2)给NavItemView加上NavItemReflashListener属性并设置set方法

public void setNavItemReflashListener(NavItemReflashListener navItemReflashListener) {this.navItemReflashListener = navItemReflashListener;
}复制代码

3)在imageView_Shuaxin的点击事件中调用onReflash(View v)方法

imageView_Shuaxin.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {imageView_Shuaxin.startAnimation(rotateAnimation);if(navItemReflashListener!=null){navItemReflashListener.onReflash(v);}}
});复制代码

5.在MainActivity中将想要显示刷新控件的NavItemView设置ShowReflashImagewei为true并加上刷新事件

navItemView1.setShowReflashImage(true);navItemView1.setNavItemReflashListener(new NavItemReflashListener() {@Overridepublic void onReflash(View v) {Toast.makeText(MainActivity.this, "刷新", Toast.LENGTH_SHORT).show();}
});复制代码

如果需要完整的可以评论哈~

转载于:https://juejin.im/post/5c4965ba6fb9a04a006f5d0b

仿抖音底部导航效果(二)相关推荐

  1. 仿抖音底部导航效果(一)

    最终效果预览 最终效果 这次实现的是第一步效果 本次效果 <h3 style="color:blue">原理解析:通过对控件添加动画来实现仿抖音底部导航的效果</ ...

  2. html5仿抖音切换效果,仿抖音视频滑动效果

    更新记录 1.6.2(2020-06-04) 优化css3动画效果 1.6.1(2020-05-23) 1.修复串音 2.新增进度条 3.新增弹幕 查看更多 scroll-video uniapp仿抖 ...

  3. Android仿抖音双击点赞动画,Android仿抖音点击效果

    原标题:Android仿抖音点击效果 作者丨wish_xy https://www.jianshu.com/p/1d17c38a3db1 学习自定义view,想找点东西耍一下,刚好看到抖音的点赞效果不 ...

  4. 仿抖音短视频源码,高仿抖音双击点赞效果之双击的问题

    仿抖音短视频源码中,实现仿抖音的双击点赞效果,相关代码如下: public class MyView extends View {private GestureDetector gestureDete ...

  5. 仿抖音底部菜单响应式html代码十分酷炫

    可以放在自己的网站手机端,也可以加一些图标美化一下. 简单html代码,复制下面代码,修改里面的href链接就可以了. 代码如下: ​<!DOCTYPE html> <html> ...

  6. Android 利用ConstraintLayout 实现仿抖音点赞动画效果

    正好在做一个和抖音差不多的APP,目前在刚启动阶段,先从实现一个抖音的点赞动画开始...爱心是从阿里的矢量图标库下载的一个爱心的Png图片,不是使用贝塞尔曲线画的...原因是我不会贝塞尔曲线(其实就是 ...

  7. Android 高仿抖音双击点赞效果

    最近遇到一个需求模仿抖音点赞效果  废话不多说,直接上代码 自定义一个view 在布局中引用它就可以 public class Love extends RelativeLayout {     pr ...

  8. iOS 仿抖音点赞动画效果

    1. 概述 最近看到抖音点赞爱心的动画效果比较好,出于好奇,自己也研究仿照动画效果写了一个,不喜欢的朋友可不要喷我噢

  9. 自定义View:仿抖音直播点赞效果

    目录 一.效果图 1.第一版本:在屏幕底部开始显示 2.第二版本:点击任意位置都可以显示 3.第三版本:给任意控件添加点赞效果 二.代码 1.第一版本代码 源码: 示例: 2.第二版本代码 源码(主要 ...

最新文章

  1. 技术不是工程师能力的全部:闲看《因为所谓的代码性能不高而被离职的程序员》...
  2. python null byte_如何以“正确”的方式处理带有nullbytes的Python unicode字符串?
  3. python爬虫可以爬哪些山_从python爬虫,到更爱这个世界
  4. pandas python2_Python数据分析之pandas学习(二)
  5. 62 | 测一测 | 这些软件测试题目,你都掌握了吗?
  6. C# 制作指示灯(经典)
  7. html5json转换为数组,将JSON数组转换为jQuery中的HTML表
  8. python切面编程_python编程上可九天揽月,下可五洋捉鳖,10行代码进行图像识别...
  9. nltk packages下载问题
  10. import * as x from 'xx' 和 import x from 'xx'
  11. a4纸尺寸在html中是多大,a4纸尺寸是多少厘米(各种标准纸张大小)
  12. 队爷的讲学计划(tarjan +拓扑排序)
  13. leet160:相交链表
  14. 阿里巴巴图标库(iconfont)使用
  15. php中 dsn什么意思,网络dsn是什么意思(图文)
  16. Boosting 介绍和 Python 实现
  17. 马蜂窝爬虫--往期创作整理
  18. 计算机准考证要打印多大的纸,税务证准考证打印纸张大小要求多大的?
  19. msg:xxl-job remoting error(connect timed out), for url : http://169.254.104.1:8900/run
  20. nag在逆向中是什么意思_什么叫逆向思维?

热门文章

  1. 不是内部或外部命令 windows10 执行 linux命令
  2. centos/Debian/Ubuntu上安装PyCryptodome/Crypto
  3. ios键盘done中文_关于IOS键盘的一些调用心得与坑
  4. Specification使用in
  5. python中的logging日志
  6. python setdefault,Python笔记setdefault用法
  7. php点击按钮加载控制器,php – Codeigniter 3自动加载控制器
  8. leetcode 74 java_【LeetCode】74. Search a 2D Matrix
  9. 渗透测试与自动化安全测试工具比较
  10. Python接口自动化测试框架(基础篇)-- 流程控制之循环语句forwhile