博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
仿抖音底部导航效果(二)
阅读量:6453 次
发布时间:2019-06-23

本文共 2486 字,大约阅读时间需要 8 分钟。

hot3.png

继续实现仿抖音底部导航

今天要实现效果如下图

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

这里附上刷新的图片素材

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

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

//默认设为flaseprivate boolean isShowReflashImage=false;//并添加set方法public void setShowReflashImage(boolean showReflashImage) {    isShowReflashImage = showReflashImage;}

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

public void startActive(){    //根据上一步添加的标记来判断是否显示ImageView    if(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() {        @Override        public 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() {        @Override        public 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() {        @Override        public void onReflash(View v) {            Toast.makeText(MainActivity.this, "刷新", Toast.LENGTH_SHORT).show();        }});

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

转载于:https://my.oschina.net/u/3956562/blog/3005444

你可能感兴趣的文章
公司今年的一道校招笔试题--五猴分桃
查看>>
[数据恢复答疑]RAID5有一块硬盘离线后,为什么不建议马上做REBUILD?
查看>>
DB2临时表在SQL过程和SQL语句中的测试总结
查看>>
Exchange 2013 EAC之管理员重置普通用户密码
查看>>
三线跑酷例子BlocksRun的技术点
查看>>
如何应对DDOS网络攻击
查看>>
新闻奖颁给了一个写稿机器人(来自新华社)
查看>>
Android应用程序在新的进程中启动新的Activity的方法和过程分析
查看>>
【Java学习笔记】对象的流读写(串行化)
查看>>
使用SharePoint Server 2007搜索Domino Notes
查看>>
Mahout学习之Mahout简介、安装、配置、入门程序测试
查看>>
重写AutoCompleteTextView之实现自定义匹配规则 及 提示
查看>>
git log 查看提交记录,参数:
查看>>
新浪SAE部署 503 JDK版本冲突解决
查看>>
oracle笔记(2010-1-30)
查看>>
Shell脚本入门与应用
查看>>
javascript闭包(Closure)初探
查看>>
ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍
查看>>
OAuth2授权原理
查看>>
微软的Framework导致该内存不能为written或read的错误?
查看>>