您好,登錄后才能下訂單哦!
例如:
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)這個是相對自身的就對坐標的移動,但移動后執行該動畫的View自身X Y值不變,當手動設置坐標時,如
view.setX(x);
view.setY(y);
view的顯示位置不會在當前的x,y坐標位置,而是在相對該位置執行過anim后的位置,而事件可以在該位置觸發。
解決方案:使用Animation的監聽
實例:
ImageView img = new …… 創建ImageView
TranslateAnimation anim = new TranslateAnimation( 0, x, 0,y);
anim.setFillAfter(true);//設置移動后留在當前位置,不返回
anim.setDuration(500);
anim.setInterpolator(mAcitvity,android.R.anim.accelerate_decelerate_interpolator);
img.startAnimation(anim);
//設置動畫監聽器, 在監聽到動畫結束時清除img動畫,設置img x,y坐標
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
img.clearAnimation();
img.setX(x);
img.setY(y);
}
});
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。