2011-07-12 52 views
2

当手机振动时,应显示动画。动画第一次运作,但下一个动摇它不会这样做。其他一切都正常工作,因为每次我摇动它都会每次显示新文本。它的动画不会在第一次之后再次执行。我确实有为onehot设置的动画,但不应该再次触发动画?动画无法正常工作

以下是我正在处理的活动。紧随其后的是xml布局。

public class Ask extends Activity{ 
    private SensorManager mSensorManager; 
    private ShakeEventListener mSensorListener; 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.ask); 

      mSensorListener = new ShakeEventListener(); 
      mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
      mSensorManager.registerListener(mSensorListener, 
       mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
       SensorManager.SENSOR_DELAY_UI); 
      final ImageView v = (ImageView)findViewById(R.id.talk); 


      mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() { 

       public void onShake() { 
        v.setBackgroundResource(R.anim.budtalk); 
        AnimationDrawable talking = (AnimationDrawable)v.getBackground(); 
        talking.start(); 
       } 
      }); 
     } 

} 




    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/page1" 
    > 

    <ImageView android:background="@drawable/page2ani1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/talk"></ImageView> 
</RelativeLayout> 
+0

我不知道为什么在发布代码时出现这样的痛苦 – steven

+0

选择代码部分并按ctrl + k使其更好。 – MByD

+0

我遇到同样的问题。什么都没有? – slipbull

回答

0

这工作?

final Animation ani = AnimationUtils.loadAnimation(this,R.anim.budtalk); 
//later 
v.startAnimation(ani); 

这就是我如何反复向TextView元素应用动画。

失败了,因为你已经改变了ImageView,或许你可能需要一个v.postInvalidate()之后呢?