Jetpack学习笔记(五):BottomNavigation和属性动画

结合之前几篇笔记的内容,这里从空白开始实现系统自带的BottomNavigation模板和一些简单的属性动画

实现BottomNavigation

  • 新建若干个Fragment
  • 在RES中新建menu
    在这里插入图片描述
    在Menu中添加Menu-item,并且为每个item添加文本和图标
    在这里插入图片描述

注意这里每个itme的ID要和Fragment的ID相同,否则无法导航

  • 在RES新建navigation,并将Fragment添加到其中,给每个Fragment设置ID,其ID与Menu中的ID一致;
    在这里插入图片描述
  • 配置Activity,添加BottomNavigationNavHostFragment,并设置相应的menu和Navigation
    设置Menu
    配置Activity
  • Activity中调用导航
//获取导航控制
        NavController controller= Navigation.findNavController(this,R.id.fragment);
        //配置底部导航   用导航组来构建一个工具条
        AppBarConfiguration configuration=new AppBarConfiguration.Builder(menu.getMenu()).build();

        //为导航设置工具条  参数 ——  活动,导航控制器,工具条
        NavigationUI.setupActionBarWithNavController(this,controller,configuration);
        //绑定底部菜单与导航
        NavigationUI.setupWithNavController(menu,controller);

属性动画

1、实例化ObjectAnimator对象

三个参数分别为:动画的组件对象动画的属性(旋转rotation、移动X/Y、缩放scaleX/Y、透明度Alpha等)、动画关键帧

ObjectAnimator animator=ObjectAnimator.ofFloat(imageView,"Alpha",0,0);

使用setDuration()方法设置动画时长(毫秒)

animator.setDuration(500);

2、设置关键帧并启动

使用setFloatValues()方法传入关键帧(浮点型)参数,分别为起始、结束关键帧;

animator.setFloatValues(imageView.getAlpha(),imageView.getAlpha()+0.2f);

调用start()方法启动动画

 animator.start();

isRunning()方法可以判断动画是否正在执行;

3、一个点击随机移动的案例

绑定图像

ImageView imageView=view.findViewById(R.id.imageView);

设置属性动画

final ObjectAnimator animator=ObjectAnimator.ofFloat(imageView,"X",0,0);
        animator.setDuration(500);

添加点击监听
Randome.nextBoolean()可睡觉返回一个boolean值,使用三目运算符赋值向左100或向右100像素;
使用animator.isRunning判断动画是否在执行,如果在执行就取消触发,否则会叠加执行;

 imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!animator.isRunning()){
                    //随机生成一个Boolean
                    float yd=new Random().nextBoolean() ?100:-100;
                    animator.setFloatValues(imageView.getX(),imageView.getX()+yd);
                    animator.start();
                }
            }
        });

所有的笔记测试代码已经上传了GitHub,可以一起交流学习鸭!
点击跳转GitHub
后续还会接着写笔记的!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值