自定义渲染器

来源:互联网 发布:电信网络诈骗题库 编辑:程序博客网 时间:2024/04/30 12:37
1、资源导入

2、实现java的渲染器类
import android.view.animation.Interpolator;
public class MyInterceptor implements Interpolator {
 @Override
 public float getInterpolation(float input) {
     //动画前一半时间不断接近目标点
  //由于随着input的不断增大,input*input也会越来越大,而且增加幅度会增大
  //所以动画的前一半时间内是做加速运动的,而且由于input*input不可能超过0.25
  //所以使用该渲染器的View只能完成总路程的1/4,例如,对于移动补间动画,只能移动1/4路程
  if(input<=0.5)
       return input * input;
     //动画后一半不断远离目标点(减速)
     else
       return  (1-input)*(1-input);
 }          
}
3、写动画
/自定义渲染器(Interpolator)/res/anim/translate.xml
<translate   xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromXDelta="0"   android:toXDelta="0"
android:fromYDelta="0"   android:toYDelta="1550"    
android:duration="5000"  
/>
4、activity中使用
public class TestActivity extends Activity{
@Override
 protected void onCreate(Bundle savedInstanceState)
    {
 super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final ImageView iv=(ImageView)findViewById(R.id.iv);
    final Animation animation=AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate);
  animation.setInterpolator(new MyInterceptor());
  animation.setRepeatCount(Animation.INFINITE);
   //  iv.setAnimation(animation);
   iv.startAnimation(animation);
    }

0 0
原创粉丝点击