自定义Animation中如何让组件移动至屏幕右下角

 
  
  
  
  
  1. package com.demo; 
  2.  
  3. import android.graphics.Camera; 
  4. import android.graphics.Matrix; 
  5. import android.view.animation.Animation; 
  6. import android.view.animation.LinearInterpolator; 
  7. import android.view.animation.Transformation; 
  8.  
  9. public class MyAnimation extends Animation { 
  10.  
  11.     private int parentWidth; 
  12.     private int parentHeight; 
  13.     private float objectWidth; 
  14.     private float objectHeight; 
  15.     private Camera camera; 
  16.      
  17.     @Override 
  18.     protected void applyTransformation(float interpolatedTime, Transformation t) { 
  19.         // TODO Auto-generated method stub 
  20.         super.applyTransformation(interpolatedTime, t); 
  21.         Matrix matrix=t.getMatrix(); 
  22.         camera.save(); 
  23.         camera.getMatrix(matrix);  //必须写在preTranslate postTranslate方法之前否则达不到想要的效果 
  24.          
  25.         matrix.preTranslate(0,0); //动画起始点,默认左上角 
  26.         matrix.postTranslate((parentWidth-objectWidth)*interpolatedTime, (parentHeight-objectHeight)*interpolatedTime); 
  27.         /*  
  28.         matrix.preTranslate(parentWidth/2,parentHeight/2);  
  29.         matrix.postTranslate((parentWidth/2-objectWidth)*interpolatedTime, (parentHeight/2-objectHeight)*interpolatedTime); 
  30.         */ 
  31.          
  32.         camera.restore(); 
  33.          
  34.          
  35.     } 
  36.  
  37.     @Override 
  38.     public void initialize(int width, int height, int parentWidth, //width,height表目标组件的尺寸,                       
  39.             int parentHeight) {                                    //parentWidth,parentHeight表目的组件的父组件的尺寸 
  40.         // TODO Auto-generated method stub 
  41.         super.initialize(width, height, parentWidth, parentHeight); 
  42.         setDuration(5000); 
  43.         setFillAfter(false); //设置是否保存动画后的位置,false表示动画后恢复到初始位置 
  44.         objectHeight=height; 
  45.         objectWidth=width; 
  46.         this.parentWidth=parentWidth; 
  47.         this.parentHeight=parentHeight; 
  48.         camera=new Camera(); 
  49.         setInterpolator(new LinearInterpolator()); //设置动画播放速率 
  50.     } 
  51.  

你可能感兴趣的:(android,Matrix,pretranslate,posttranslate)