网购Android App购物车点击动画实现
发布时间:2020-12-14 23:50:09 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public ViewGroup createAnimLayout() {ViewGroup rootView = (ViewGroup)this.getActivity().getWindow().getDecorView();LinearLayout animLayout =
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 public ViewGroup createAnimLayout() { ViewGroup rootView = (ViewGroup)this.getActivity().getWindow().getDecorView(); LinearLayout animLayout = new LinearLayout(getActivity()); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT); animLayout.setLayoutParams(lp); animLayout.setId(Integer.MAX_VALUE); animLayout.setBackgroundResource(android.R.color.transparent); rootView.addView(animLayout); return animLayout; } public View addViewToAnimLayout(final ViewGroup vg,final View view,int[] location) { int x = location[0]; int y = location[1]; LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); lp.leftMargin = x; lp.topMargin = y; view.setLayoutParams(lp); return view; } public void setTranslateAnim(final View v,int[] start_location) { if(anim_mask_layout==null) anim_mask_layout = createAnimLayout(); anim_mask_layout.addView(v);//把动画视图添加到动画层 final View view = addViewToAnimLayout(anim_mask_layout,v,start_location); int[] end_location = new int[2];// 这是用来存储动画结束位置的X、Y坐标 shopCart.getLocationInWindow(end_location);// shopCart是那个购物车 // 计算位移 int endX = 0 ;// 动画位移的X坐标 int endY = end_location[1] - start_location[1];// 动画位移的y坐标 TranslateAnimation translateAnimationX = new TranslateAnimation(0,endX,0); translateAnimationX.setInterpolator(new LinearInterpolator()); translateAnimationX.setRepeatCount(0);// 动画重复执行的次数 translateAnimationX.setFillAfter(true); TranslateAnimation translateAnimationY = new TranslateAnimation(0,endY); translateAnimationY.setInterpolator(new AccelerateInterpolator()); translateAnimationY.setRepeatCount(0);// 动画重复执行的次数 translateAnimationX.setFillAfter(true); AnimationSet set = new AnimationSet(false); set.setFillAfter(false); set.addAnimation(translateAnimationY); set.addAnimation(translateAnimationX); set.setDuration(800);// 动画的执行时间 view.startAnimation(set); // 动画监听事件 set.setAnimationListener(new AnimationListener() { // 动画的开始 @Override public void onAnimationStart(Animation animation) { v.setVisibility(View.VISIBLE); } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } // 动画的结束 @Override public void onAnimationEnd(Animation animation) { v.setVisibility(View.GONE); anim_mask_layout.removeView(view); // buyNum++;//让购买数量加1 } }); } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java:如何指定JVM参数-XX:ErrorFile并在filename中保留自
- java – 每次我使用String时,它是否会创建一个新的String对
- java.lang.IllegalArgumentException:未知参数名称:custo
- Java 开发环境配置
- java – HQL与Restrictions.ilike等效(用于不区分大小写的匹
- java – JDBC驱动程序在空的ResultSet上抛出“ResultSet Cl
- java weak references
- spring boot集成shiro详细教程(小结)
- java – 字母数字的正则表达式
- java简单读取properties配置文件的方法示例