TranslateAnimation动画 及setAnimation 和 startAnimation的区别

来源:互联网 发布:网络漏洞扫描报告 编辑:程序博客网 时间:2024/09/21 09:02

        

有不对的地方谢谢大家提出来。谢谢了


        今天看KJBlog开源项目,看见了TranslateAnimation,它是平移动画,而它的构造函数 new TranslateAnimation(0, 400, 200, 500);里面有四个参数,我刚开始不是很清楚这几个参数具体情况,分别是fromX,toX,fromY,toY .而这个X,Y都是相对于当前这个控件的位置来说的。就是从当前控件的(X+fromX,Y+fromY)移动到(X+toX,Y+toY),(其中这个X和Y是最刚开始这个控件的X和Y坐标。就是动画都还没开始的时候的坐标。)


         本来自己写了个小例子。就是按一个按钮Button,然后让一个TextView 移动,结果按了没效果,发现自己用的是setAnimation,后来网上看了setAniamtion和startAnimation的区别,在这里我贴出代码,大家可以看一下。


private Button btn;private TextView tx;TranslateAnimation translate;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.button1);tx = (TextView) findViewById(R.id.textView1);translate = new TranslateAnimation(0,                400, 200, 500);translate.setDuration(1000);    translate.setFillAfter(true);        //如果这里直接用setAnimation,是有效果的    //tx.setAnimation(translate);         btn.setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View arg0) {tx.startAnimation(translate);//或者是下面二行,用setAnimation也可以//((View) tx.getParent()).invalidate();//没有这一行,直接点击按钮用setAnimation是没有效果的//tx.setAnimation(translate);}});}


1 0
原创粉丝点击