仿美团外卖添加商品抛物线动画
来源:互联网 发布:怎么在淘宝卖二手货 编辑:程序博客网 时间:2024/04/30 12:37
知识点:
安卓基础动画的使用
动态添加控件
获得控件所在屏幕的位置
动画插值器的使用
运行效果:
代码:
public class MainActivity extends Activity implements View.OnClickListener { //按钮id数组 private int[] buttonId = new int[]{ R.id.btTest, R.id.btTest2, R.id.btTest3, R.id.btTest4, R.id.btTest5, R.id.btTest6, R.id.btTest7, R.id.btTest8, R.id.btTest9, R.id.btTest11, R.id.btTest12, R.id.btTest13, R.id.btTest14, R.id.btTest15, R.id.btTest16, R.id.btTest17, R.id.btTest18, R.id.btTest19, R.id.btTest21, R.id.btTest22, R.id.btTest23, R.id.btTest24, R.id.btTest25, R.id.btTest26, R.id.btTest27, R.id.btTest28, R.id.btTest29 }; private ImageView ivGouWuChe;//购物车图片 private int gouWuX, gouWuY;//购物车坐标 private RelativeLayout layout;//父布局 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //循环注册按钮 for (int i = 0; i < buttonId.length; i++) { Button button = (Button) findViewById(buttonId[i]); button.setOnClickListener(this); } ivGouWuChe = (ImageView) findViewById(R.id.ivGouWuChe); layout = (RelativeLayout) findViewById(R.id.activity_main); } /** * 给控件添加抛物线动画效果 * 4个参数 1、需要添加动画的控件 2、终点坐标x,y(相对于控件的相对坐标) 3、是否停留在动画结束的位置 */ private void startPaoWuXianAnimation(View view, boolean isStay) { //获得按钮位于屏幕的位置 final int[] location = new int[2]; view.getLocationOnScreen(location); int x1 = location[0]; int y1 = location[1]; //动态添加 圆点图片 final ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.qiu); layout.addView(iv); //动态设置圆点图片的大小 RelativeLayout.LayoutParams linearParams = (RelativeLayout.LayoutParams) iv.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 30;// 控件的高强制设成20 linearParams.width = 30;// 控件的宽强制设成30 iv.setLayoutParams(linearParams); //设置动画(位移动画的构造方法注意!!!) TranslateAnimation animationX = new TranslateAnimation(Animation.ABSOLUTE, x1, Animation.ABSOLUTE, gouWuX + 30, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0);//X轴上的位移 TranslateAnimation animationY = new TranslateAnimation(Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, y1 - 10, Animation.ABSOLUTE, gouWuY);//X轴上的位移 animationX.setDuration(500);//设置时间 animationY.setDuration(500);//设置时间 animationX.setFillAfter(isStay);//设置停留到最后的位置 animationY.setFillAfter(isStay);//设置停留到最后的位置 //给动画添加插值器 animationX.setInterpolator(new LinearInterpolator());//水平方向是匀速运动 animationY.setInterpolator(new AccelerateInterpolator());//垂直方向是加速运动 //创建动画数组(让两个动画同时运行) AnimationSet mAnimationSet = new AnimationSet(false); mAnimationSet.addAnimation(animationX); mAnimationSet.addAnimation(animationY); iv.startAnimation(mAnimationSet); mAnimationSet.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (iv.getVisibility() == View.VISIBLE) { iv.setVisibility(View.GONE); } } @Override public void onAnimationRepeat(Animation animation) { } }); } @Override public void onClick(View view) { gouWuX = (int) ivGouWuChe.getX();//获得购物车的坐标 gouWuY = (int) ivGouWuChe.getY(); startPaoWuXianAnimation(view, false); }}
xml 代码略
0 0
- 仿美团外卖添加商品抛物线动画
- Android购物车添加商品动画抛物线ParabolaAnimation
- 使用jquery提供的抛物插件,实现添加商品出现抛物线动画
- 添加商品动画
- 仿天猫加入购物车,商品做抛物线动画
- 商品加入购物车抛物线下坠的动画
- 抛物线动画
- 实现购物车点击添加的抛物线动画效果
- 商品添加购物车实现动画效果
- 添加商品到购物车动画解析
- CSS3动画-抛物线运动
- 动画Animation之抛物线
- iOS开发--抛物线动画
- android 抛物线动画
- android 抛物线下载动画
- android抛物线动画实现
- ValueAnimator实现动画【抛物线】
- 属性动画抛物线
- Java的四种修饰符的访问权限
- AS使用svn提交代码总结
- Java代码去除svn标志
- iOS中Emoji表情的判断
- 面试问题
- 仿美团外卖添加商品抛物线动画
- Android__小功能__防止重复点击
- 欢迎使用CSDN-markdown编辑器
- 浏览器渲染流程
- c++读入数量不定的数据
- Scrapy爬虫经验总结
- 第1课 方程组的几何解释
- springmvc ContextLoaderListener作用
- 51node1371 填数字(dp)