美文网首页购物类appAndroidAndroid-动画系列
《Android APP可能有的东西》之UI篇:加入购物车动画

《Android APP可能有的东西》之UI篇:加入购物车动画

作者: 温瑜 | 来源:发表于2016-10-18 17:55 被阅读1723次

    很多电商app的加入购物车的动作会要求加上动画效果:飞进购物车,想来也合理,在listview界面时商品快速加入购物车,一直toast用户加入成功好像不太正常,所以添加一个动画,用户自然就懂了,而且也挺美观。这里记录一个这样的demo,demo里面的注释足够详细,这里也会给出部分代码说明。

    上代码 ShopAnimDemo

    上效果

    动画效果

    上说明

    使用方法1:

    如果现成的效果还不够自己想要的效果,下载demo,把demo中library中的两个类拷贝出来放进自己的view文件夹,然后直接去修改它们,修改成满足自己需求的效果。

    使用方法2:

    如果觉得现成的效果足够满足自己需求了直接使用gradle依赖的方式:

    1.Add it in your root build.gradle at the end of repositories:

    allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }
    

    2.Add the dependency:

    dependencies {
            compile 'com.github.paradoxie:ShopAnimDemo:0.1'
    }
    

    自定义说明:

    //启动动画
    public void startAnim(View v) {
        int[] end_location = new int[2];
        int[] start_location = new int[2];
        v.getLocationInWindow(start_location);// 获取购买按钮的在屏幕的X、Y坐标(动画开始的坐标)
        car.getLocationInWindow(end_location);// 这是用来存储动画结束位置,也就是购物车图标的X、Y坐标
        buyImg = new ImageView(this);// buyImg是动画的图片
        buyImg.setImageResource(R.mipmap.sign);// 设置buyImg的图片
    
        //        mAniManager.setTime(5500);//自定义时间
        mAniManager.setAnim(this, buyImg, start_location, end_location);// 开始执行动画
    
        mAniManager.setOnAnimListener(new AniManager.AnimListener() {
            @Override
            public void setAnimBegin(AniManager a) {
                //动画开始时的监听
            }
    
            @Override
            public void setAnimEnd(AniManager a) {
                //动画结束后的监听
                num += 5;
                buyNumView.setText(num + "");
                buyNumView.show();
            }
        });
    }
    

    写一个点击事件中可直接调用的方法,内部实现为动画的配置,包括:动画的起点,即点击view的位置;动画的终点,即购物车图标的位置;界面上飞来飞去那个小图标;动画的持续时间;然后调用方法开始执行动画。这里给出了动画开始和结束的监听回调,因为一般在结束之后是需要修改一些显示状态的,具体查看demo实现效果。

    另外,在图标之上有一个数字标签BadgeView,使用了自定义控件实现,使用时具体配置:

        buyNumView = new BadgeView(this, car);//把这个数字标签放在购物车图标上
        buyNumView.setBadgePosition(BadgeView.POSITION_CENTER);//放在图标中心
        buyNumView.setTextColor(Color.WHITE);//数字颜色
        buyNumView.setBadgeBackgroundColor(Color.BLUE);//背景颜色
        buyNumView.setTextSize(9);//数字大小
    

    注释给得十分清楚了,可去修改自己想要的效果。具体的使用配置只有这些,很容易理解哇

    源码中获取ViewGroup时使用的是Activity.getWindow().getDecorView(),所以理论上支持所有activity和fragment中实现此效果,具体木有测试,如果有问题可以根据情况修改。本人正式项目中就是在fragment实现这个效果,虽然不是用的这个依赖库。

    上代码 ShopAnimDemo

    【UI篇】扩展阅读

    《Android APP可能有的东西》之UI篇:流式标签&搜索历史

    《Android APP可能有的东西》之UI篇:日夜间模式切换

    《Android APP可能有的东西》之UI篇:展开TextView全文


    本文作者:paradoxie
    个人主页:谢盒盒的小黑屋,不止说技术
    简书地址:简书主页,专注说技术
    github地址:paradoxie
    转载请注明出处,蟹蟹!
    -------我的梦想真的是做一条咸鱼!

    相关文章

      网友评论

      本文标题:《Android APP可能有的东西》之UI篇:加入购物车动画

      本文链接:https://www.haomeiwen.com/subject/ubstuttx.html