2010-06-29 9 views
35

मैंने स्क्रीन के केंद्र पर अपने आइकन को स्पिन करने के लिए निम्नलिखित लिखा है और इसके बजाय यह ऊपरी-बाएं कोने (यानी, मूल x = 0, छवि दृश्य के y = 0) के चारों ओर घूमता है। ImageView या RotateAnimation के कुछ विशेषताओं को सेट करना आसान होना चाहिए, लेकिन मैं इसे समझ नहीं सकता।अपने केंद्र बिंदु पर एंड्रॉइड आइकन कैसे स्पिन करें?

public class IconPromoActivity extends Activity { 
    private static final float ROTATE_FROM = 0.0f; 
    private static final float ROTATE_TO = -10.0f * 360.0f;// 3.141592654f * 32.0f; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ImageView favicon = (ImageView) findViewById(R.id.favicon); 

     RotateAnimation r; // = new RotateAnimation(ROTATE_FROM, ROTATE_TO); 
     r = new RotateAnimation(ROTATE_FROM, ROTATE_TO, 0, 0, 40, 0); 
     r.setDuration((long) 2*1500); 
     r.setRepeatCount(0); 
     favicon.startAnimation(r); 
    } 
} 

उत्तर

74

प्रयास करें: r = new RotateAnimation(ROTATE_FROM, ROTATE_TO, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

+1

आप इस व्याख्या कर सकते हैं। ताकि हम अपनी आवश्यकताओं के अनुसार आसानी से संशोधित कर सकें। – Nepster

+0

यही वह है जिसे मैं ढूंढ रहा हूं। – tounaobun

4

यह मेरे लिए काम करता है:

img = (ImageView)findViewById(R.id.ImageView01); 
RotateAnimation rotateAnimation = new RotateAnimation(30, 90, 
    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
+0

आप इसे किसी छवि में कैसे जोड़ देंगे ताकि जब तक आप इसे रोकने के लिए न कहें तब तक यह लगातार घूमता है। – Zapnologica

+0

'rotationAnimation.setDuration (Animation.INFINITE);' और आप एनीमेशन बंद करना चाहते हैं जब: 'imageView myRotatingImage = (imageView) mRoot.findViewById (R.id.my_rotating_image);' ' myRotatingImage.clearAnimation() ; ' –

+3

यह काम नहीं है: java.lang.IllegalArgumentException: एनिमेशन अवधि ऋणात्मक नहीं हो सकती –

संबंधित मुद्दे