Android简单用属性动画实现两个控件重叠
来源:互联网 发布:云计算系统软件 编辑:程序博客网 时间:2024/05/29 05:03
1.描述:
简单的实现一个小动画,两个控件重叠。
2.思路:
获取两个控件之间的位置在X,Y轴方向的差值。
/** * 计算两个控件之间的距离 * @param fromView * @param toView */public void getLocation(TextView fromView,TextView toView){int [] toLocation = new int [2];int [] fromLocation = new int [2];fromView.getLocationInWindow(fromLocation);toView.getLocationInWindow(toLocation);transX = toLocation[0] - fromLocation[0];transY = toLocation[1] - fromLocation[1];}
3.移动一个控件到另一个控件上。
ValueAnimator animationX = ObjectAnimator.ofFloat(textView_animation, "translationX", 0f, transX).setDuration(1000);ValueAnimator animationY = ObjectAnimator.ofFloat(textView_animation, "translationY", 0f, transY).setDuration(1000);AnimatorSet bouncer = new AnimatorSet();bouncer.play(animationX).with(animationY);bouncer.start();textViewBottom.setAlpha(0.2f);
1)xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView_animation" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/btn_radio_selected"/> <TextView android:id="@+id/textViewBottom" android:layout_marginLeft="200dp" android:layout_marginTop="400dp" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/btn_radio_normal"/></LinearLayout>2)代码
public class AnimationTest extends Activity implements OnClickListener {private final static String TAG = AnimationTest.class.getSimpleName();private TextView textView_animation,textViewBottom;float transX = 100f;float transY = 100f;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.test_animation);textView_animation = (TextView) findViewById(R.id.textView_animation);textViewBottom = (TextView) findViewById(R.id.textViewBottom);textView_animation.setOnClickListener(this);}@Overridepublic void onClick(View view) {int id = view.getId();if(id == R.id.textView_animation){getLocation(textView_animation ,textViewBottom);ValueAnimator animationX = ObjectAnimator.ofFloat(textView_animation, "translationX", 0f, transX).setDuration(1000);ValueAnimator animationY = ObjectAnimator.ofFloat(textView_animation, "translationY", 0f, transY).setDuration(1000);AnimatorSet bouncer = new AnimatorSet();bouncer.play(animationX).with(animationY);bouncer.start();textViewBottom.setAlpha(0.2f);}}/** * 计算两个控件之间的距离,注意不要在onCreate时计算 * @param fromView * @param toView */public void getLocation(TextView fromView,TextView toView){int [] toLocation = new int [2];int [] fromLocation = new int [2];fromView.getLocationInWindow(fromLocation);toView.getLocationInWindow(toLocation);transX = toLocation[0] - fromLocation[0];transY = toLocation[1] - fromLocation[1];}}
0 0
- Android简单用属性动画实现两个控件重叠
- 利用Android属性动画实现Banner控件
- 两个重叠控件的放大缩小实现
- Android逐帧动画、属性动画的简单实现
- Android逐帧动画、属性动画的简单实现
- Android属性动画简单实现图片的伸缩
- Android属性动画简单实现图片的伸缩
- Android属性动画简单总结
- android 简单动画实现
- Android 动画简单实现
- Android属性动画的实现
- Android属性动画实现心跳
- 属性动画实现翻滚的控件
- 实现控件移动(二)--使用属性动画
- android 属性动画 vs 延时实现动画
- Android 属性动画实现抛物线动画
- android 控件动画效果实现
- android 控件动画效果实现
- UIImagePickerController 拍照
- Android开发---测试教程
- linux下安装mysql
- Firefox下打开wap站的表单,第一次页面正常,提交后验证失败,重新回到表单页乱码是什么原因造成的
- ozzie配置和example
- Android简单用属性动画实现两个控件重叠
- Yum配置文件详解
- 关于序列旋转(辗转相除求取最大公约数)
- Ruby 安装
- erl_tree heap 堆实现
- POJ 3080 Blue Jeans (暴力)
- 如何更便捷的监控前端服务质量
- java 静态(static)方法的继承和重写
- SlidingMenu