Android中的纺车

时间:2011-08-08 11:41:59

标签: android

如何借助触摸事件在Android上的活动中旋转图像滚轮?我需要一些指南或任何教程的链接。

1 个答案:

答案 0 :(得分:3)

这通常是用几件完成的。这是我在我的一个应用程序中执行此操作的方式。 *注意:这不是一个平滑的轮子,而是它在顶部开始和停止(这是故意的)。您可以在dev site上查找有关Animation的更多信息。

具有图像的主XML:

<ImageView
    android:id="@+id/anim_example"
    android:src="@drawable/loading_circle"
    android:layout_width="30sp"
    android:layout_height="30sp"
    android:onClick="RunAnimation" />

以下是运行动画的代码中的部分

public void RunAnimation(View v)
{
    //The onClick method has to be present and must take the above parameter.
    StartLoading();

    //This will delay the stop for 5 seconds
    //Normally you would want to actually have this run based on some other input/data.
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
        public void run() {
          StopLoading(); 
        } 
    }, 5000); 
}

public void StartLoading() {
    ImageView refreshImage = (ImageView) this.findViewById(R.id.anim_example);
    refreshImage.setImageDrawable(getResources().getDrawable(R.drawable.loading_circle));
    Animation rotateLoading = AnimationUtils.loadAnimation(this, R.anim.rotate);
    refreshImage.clearAnimation();
    refreshImage.setAnimation(rotateLoading);
}

public void StopLoading() {
    ImageView refreshImage = (ImageView) this.findViewById(R.id.anim_example);
    if (refreshImage.getAnimation() != null)
    {
        refreshImage.clearAnimation();
        refreshImage.setImageDrawable(getResources().getDrawable(R.drawable.loading_circle));
    }
}

anim.rotate:

<?xml version="1.0" encoding="utf-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="359"
    android:duration="2000"
    android:repeatMode="restart"
    android:repeatCount="-1"
    android:pivotX="50%"
    android:pivotY="50%">
</rotate>