Android中属性动画Property Animation使用示例(二)
2014-04-10 14:53
639 查看
MainActivity如下:
main.xml如下:
package cc.cn; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.MarginLayoutParams; import android.widget.Button; /** * Demo描述: * 属性动画中ValueAnimator使用实例 * 利用ValueAnimator使控件发生位移(变化Margin值) * * ValueAnimator是Property Animation很重要的一个类 * ValueAnimator可跟踪记录对象属性已经变化的时间及当前这个时间点的值 * * 参考资料: * 1 http://blog.csdn.net/linmiansheng/article/details/18716841 * 2 http://blog.csdn.net/linmiansheng/article/details/18763987 * 3 关于属性动画的中文文档,请参见: * http://blog.csdn.net/think_soft/article/details/7703684 * http://wiki.eoeandroid.com/Property_Animation * Thank you very much * */ public class MainActivity extends Activity { private Button mValueAnimatorButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mValueAnimatorButton=(Button) findViewById(R.id.valueAnimatorButton); //ValueAnimator.ofInt(int,int)设定了值的变化范围 final ValueAnimator valueAnimator=ValueAnimator.ofInt(20,100); //利用AnimatorUpdateListener监听动画的执行 valueAnimator.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator va) { //得到动画当前执行的值 //这些值均在(20,100)之间 Integer animatedValue = (Integer)va.getAnimatedValue(); System.out.println("animatedValue="+animatedValue); MarginLayoutParams marginLayoutParams = (MarginLayoutParams) mValueAnimatorButton.getLayoutParams(); marginLayoutParams.leftMargin = animatedValue; //不断修改Button的Margin值 mValueAnimatorButton.setLayoutParams(marginLayoutParams); } }); valueAnimator.setDuration(2000); //valueAnimator.setRepeatCount(1); //valueAnimator.setRepeatMode(ValueAnimator.REVERSE); valueAnimator.setTarget(mValueAnimatorButton); mValueAnimatorButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { valueAnimator.start(); } }); } }
main.xml如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/valueAnimatorButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ValueAnimatorButton" /> </LinearLayout>
相关文章推荐
- Android中属性动画Property Animation使用示例(一)
- Android中属性动画Property Animation使用示例(一)
- Android中属性动画Property Animation使用示例(四)
- Android中属性动画Property Animation使用示例(四)
- Android中属性动画Property Animation使用示例(三)
- Android中属性动画Property Animation使用示例(三)
- Android中属性动画Property Animation使用示例(二)
- Android使用属性动画property animation,实现分散式弹出菜单
- Android动画之Property Animation(属性动画)
- Android开发之自定义控件与属性动画Animation的结合使用
- Android动画效果之Property Animation进阶(属性动画)
- Android Property Animation属性动画:rotation旋转(2)
- Android动画效果之Property Animation进阶(属性动画)(四)
- Property Animation(属性动画)用法示例
- Android中编写属性动画PropertyAnimation的进阶实例
- Android属性动画PropertyAnimation LayoutTransition(布局容器动画)
- Android学习之 属性动画<Property Animation>
- Android属性动画Property Animation,组合动画
- Android Property Animation属性动画初识:透明渐变(1)
- Android动画效果之Property Animation进阶(属性动画)