TranslateAnimation 移动动画

实现两张图片的交替,像左边移动交替,像右边移动交替,图片左(右)出,右(左)进等。
public class Move extends AbstractAnimation {
private float fromXDelta;
private float toXDelta;
private float fromYDelta;
private float toYDelta;
private ImageView view;
private Context mContext;
private boolean filpLeft;
private boolean filpRight;
//receive the Activity
public Context getmContext() {
return mContext;
}

public void setmContext(Context mContext) {
this.mContext = mContext;
}

public boolean isFilpLeft() {
return filpLeft;
}

public void setFilpLeft(boolean filpLeft) {
this.filpLeft = filpLeft;
}

public boolean isFilpRight() {
return filpRight;
}

public void setFilpRight(boolean filpRight) {
this.filpRight = filpRight;
}

TranslateAnimation translateStart,translateEnd;
public float getFromXDelta() {
return fromXDelta;
}

public void setFromXDelta(float fromXDelta) {
this.fromXDelta = fromXDelta;
}

public float getToXDelta() {
return toXDelta;
}

public void setToXDelta(float toXDelta) {
this.toXDelta = toXDelta;
}

public float getFromYDelta() {
return fromYDelta;
}

public void setFromYDelta(float fromYDelta) {
this.fromYDelta = fromYDelta;
}

public float getToYDelta() {
return toYDelta;
}

public void setToYDelta(float toYDelta) {
this.toYDelta = toYDelta;
}

@Override
public void performAnimation(Handler handler) {
view = (ImageView)getTarget();
//isFilpLeft: when the UI add the String to move left isFilpLeft = true;
if(isFilpLeft()){
translateStart = new TranslateAnimation(fromXDelta,toXDelta,fromYDelta,toYDelta);
translateEnd = new TranslateAnimation(-toXDelta,fromXDelta,-toYDelta,fromYDelta);
setFilpLeft(false);
}else if(isFilpRight()){
translateStart = new TranslateAnimation(fromXDelta,-toXDelta,fromYDelta,-toYDelta);
translateEnd = new TranslateAnimation(toXDelta,fromXDelta,toYDelta,fromYDelta);
setFilpRight(false);
} else{
translateStart = new TranslateAnimation(fromXDelta,toXDelta,fromYDelta,toYDelta);
translateEnd = new TranslateAnimation(toXDelta,fromXDelta,toYDelta,fromYDelta);
}
translateStart.setDuration((long)(getDuration()*1000));
translateEnd.setDuration((long)(getDuration()*1000));
translateStart.setRepeatCount(getRepeat());


translateStart.setAnimationListener(new AnimationListener(){

@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
//change the image when the activity call.
if(mContext != null){
Bitmap bmp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.image2);
view.setImageBitmap(bmp);
view.startAnimation(translateEnd);
}else{
view.startAnimation(translateEnd);
}
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
});
handler.postDelayed(new Runnable() {
@Override
public void run() {
view.startAnimation(translateStart);
}
}, (long)(getDelay()*1000));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值