1
我有一個活動(A)在計算後啓動另一個活動(B)。我的問題是,當啓動活動B時,應該從大到小(從0.33縮放到1)時從左向右移動的箭頭可以在非常短的時間內顯示,然後才能開始補間動畫。最終結果是在開始動畫之前,全尺寸可繪製的閃爍。在補間動畫之前顯示的可繪製的圖形
一切似乎都指出問題與動畫文件(.xml)而不是java類有關。
protected void arrowAnimation(Animation arrowExtent) {
// TODO Auto-generated method stub
arrowImage.setImageResource(R.drawable.arrowimage);
arrowImage.startAnimation(arrowExtent);
arrowExtent.setFillAfter(true);
我曾嘗試以下:
- 使用setImageDrawable代替setImageResource到可繪製對象這可以當我刪除該行
arrowImage.startAnimation(arrowExtent);
在下面的代碼中觀察到。 - 設置
arrowImage.setFillBefore(false);
任何建議,將不勝感激。
動畫XML如下:
<?xml version="1.0" encoding="utf-8"?>
<set android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<scale
android:fromXScale="0.33"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:duration="1000"
android:fillBefore="false" />
<translate
android:fromXDelta="0%"
android:toXDelta="75%p"
android:duration="1000" />
</set>
感謝您的建議,我忘了提的是,爲了能夠使用在活動B上下文菜單,我不得不搬到從'的onCreate(')的動畫'onWindowsFocusChanged()'。我之前在'onCreate()'中嘗試過動畫並獲得了相同的結果。建議的代碼不能解決問題,我注意到當'arrowImage.startAnimation(arrowExtent)'被稱爲可見或不可見繪圖時,繪製。 – javiere
另外,嘗試以下內容以查看我是否觀察到某些提示,然後執行了操作。我在'ArrowAnimation()'中試過'arrowExtent.setStartOffset(1000)'。其結果是:1.箭頭圖像閃爍。 2.一秒鐘沒事。 3.隨着動畫的進展,動畫以縮放和變形的方式開始。所以我的直覺告訴我,動畫xml文件在開始之前就在屏幕上繪製了箭頭圖像。我張貼動畫xml。 – javiere