圆形旋转onTouch

时间:2012-03-28 09:23:37

标签: java android geometry

圆形旋转onTouch只有在没有做任何事情后点击一次才有效。

这是我的代码:

    setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            int n = 0;
            postInvalidate();
            for(int i=0; i<360; i++){
                setRotationX(n + 1);
            }
            forceLayout();

我希望有人可以帮助我。 我如何查看代码以便它可以多次工作?

2 个答案:

答案 0 :(得分:3)

如果您使用goodm解决方案,则应在清单中添加:

<supports-screens android:resizeable="true"
                  android:smallScreens="true"
                  android:normalScreens="true"
                  android:largeScreens="true"
                  android:anyDensity="true"/>

这适用于ICS和pre-ICS。

答案 1 :(得分:1)

要做动画,你需要在res文件夹中创建一个文件夹“anim”并添加这样一个xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%"
    android:duration="1000"/>

在你的java类中试试:

Animation a = AnimationUtils.loadAnimation(this, R.anim.yourAnim);
a.setAnimationListener(new AnimationListener()
{
    @Override
    public void onAnimationEnd(Animation animation)
    {
        animPlaying = false;
    }

    @Override
    public void onAnimationStart(Animation animation)
    {
        animPlaying = true;
    }

    @Override
    public void onAnimationRepeat(Animation animation){}
});

public boolean onTouch(View v, MotionEvent event) 
{
        int n = 0;
        postInvalidate();
        if(aninmPlaying == false)
        {
             yourView.startAnimation(a);
        }
        forceLayout();