2011-01-11 41 views
0

我有一個圖像加載爲背景,當觸摸屏幕時,我想用frameanimation爲屏幕的那一部分設置動畫。我的frameanimation由9個不同的png文件組成,這些文件僅從我想要動畫的屏幕部分製作而成。當我使用整個背景作爲動畫幀時,我可以使用它,但是當我使用setbounds()來告訴frameanimation在哪裏繪製時,我最終將frameanimation放大以填充整個屏幕,這也會擦除我的背景。我如何獲得保持原始大小的框架並同時找到它?我可以張貼代碼後,如果這是不明確的,我不是在COMP現在如何在android中定位FrameAnimation?

public boolean onTouchEvent (MotionEvent event) 
{ 
    switch (event.getAction()) 
    { 
     case MotionEvent.ACTION_DOWN: 
     this.setBackgroundResource (R.drawable.nova); 
     Object bg = this.getBackground 
     touchAni.setBounds (152, 156, 152+140, 156+140); 

     touchAni = (AnimationDrawable) bg; 

     if (!touchAni.isRunning()) 
      touchAni.start(); 
     else 
     { 
      touchAni.stop(); 
      touchAni.start(); 
     } 
    } 
} 

回答

0

好吧,經過多次的put around,我終於在這裏找到了BounceActivity代碼:http://rsequence.com/android_blog/node/107。似乎對於這樣一個簡單的任務來說真的很複雜,但讓我得到我想要的。需要注意的是,如果其他人認爲它有用,Handler()代碼需要有一個開關,所以當屏幕上沒有任何事情發生時,它不會將cpu週期旋轉到BounceView.draw()。

0

我已經解決了類似的問題的方式是,我又增加了圖像組件到我的佈局XML之上我想要動畫的組件。通常情況下,圖像組件是android:visibility="gone" ,但是當我想運行框架動畫時,我將其設置爲可見並開始動畫。

通過這種方式,您可以將動畫組件放置在佈局中的任何位置。

+0

不確定你的意思。我已將代碼添加到我的原始問題中。正在發生的事情是,第一次觸摸屏幕時,R.drawable.nova animation-list(描述動畫的xml文件)被縮放以適應整個屏幕,然後播放動畫。隨後在屏幕上的觸摸在正確的位置繪製新星動畫,但是背景不是我想要的(被放大的nova動畫覆蓋)。我將在哪裏準確地添加圖像組件?在animation-list xml文件中,還是在onTouchEvent()方法中的某處? – wufoo 2011-01-11 21:40:32