加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

网购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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读