2011-09-19 97 views
3

我使用TranslateAnimation在移動後將圖像居中,問題是如果圖像的一部分在動畫開始時位於視圖之外,則在動畫過程中將不可見:TranslateAnimation在Imageview外部切割圖像

我的代碼:

 TranslateAnimation trans = new TranslateAnimation(0, deltaX, 0, 
       deltaY); 
     trans.setDuration(250); 
     trans.setInterpolator(new AccelerateInterpolator(1.0f)); 
     this.startAnimation(trans); 

編輯:

通過第一定心圖像,然後繪製從它的原始位置的動畫中心如下解決它:

 setVisibility(INVISIBLE); 
     //A void that centers the image inside the view 
     center(true, true); 
     TranslateAnimation trans = new TranslateAnimation(-deltaX, 0,-deltaY, 0); 
     trans.setDuration(250); 
     trans.setInterpolator(new AccelerateInterpolator(1.0f)); 
     this.startAnimation(trans); 
     setVisibility(VISIBLE); 

回答

1

從我的理解來看,android並沒有繪製出在屏幕上看不到的部分視圖。將動畫應用於視圖時,只有像素會在視圖保留在舊位置時發生偏移,這應該是問題,因爲只有圖像的可見像素纔會移動。

我的想法是添加一個動畫偵聽器並覆蓋animationStart方法,並手動添加視圖到corrent posistion,或者您也可以在調用開始動畫之前嘗試此操作。 這可能工作。