2012-09-14 22 views
5

मैंने छविदृश्य को अनुकूलित किया है, लेकिन यह सिर्फ इसके बिटमैप को पूरे दृश्य में घुमा रहा है। मैं एनीमेशन का उपयोग नहीं करना चाहता क्योंकि मैं इमेजव्यू को खींच रहा हूं और साथ ही एनिमेटेड इमेजिव्यू परिणाम अजीब चल रहा हूं, इसलिए onDraw/draw पर चिपके हुए, प्लस ओवरराइडिंग ड्रा कुछ भी विशेष नहीं कर रहा है।अपने किनारों को काटने के बिना अपने केंद्र के चारों ओर इमेजव्यू घुमाएं

 @Override 
     protected void onDraw(Canvas canvas) { 
     // TODO Auto-generated method stub 
     canvas.save(); 
     canvas.rotate(rotationAngle, rotationW, rotationH); 
     super.onDraw(canvas); 
     canvas.restore(); 
     }  

मैं पूरे दृश्य को केवल अपने बिटमैप को कैसे घुमा सकता हूं ??

.setRotation(float angle); 

http://developer.android.com/reference/android/view/View.html#attr_android:rotation


11 एपीआई इससे पहले कि आप आपके विचार के मुख्य तत्व के लिए एक घुमाने जोड़ सकते हैं:

उत्तर

1
  1. किसी को छविदृश्य की चौड़ाई और ऊंचाई की जांच करनी चाहिए, अगर ऊंचाई> चौड़ाई रोटेशन चौड़ाई के समय ऊंचाई के बराबर हो और ऊंचाई के समान हो।

  2. fill_parent के बराबर चौड़ाई और ऊंचाई बनाएं और फिर मैट्रिक्स के माध्यम से घूर्णन/अनुवाद/स्केल करें।

0

11 एपीआई के साथ शुरू, वहाँ प्रत्येक दृश्य के लिए निम्न विधि उपलब्ध है :

@Override 
protected void onDraw(Canvas c) { 
    c.save(); 
    c.rotate(...); 
    super.onDraw(c); 
    c.restore(); 
} 
+0

मैं एपीआई 7 के साथ काम कर रहा हूं, तो क्या कोई और तरीका है? – Khawar

+0

उपरोक्त मेरी पोस्ट अपडेट की गई;) – Nippey

+0

कोड दोनों के बीच कोई अंतर नहीं है, वास्तव में मैं वही काम कर रहा हूं और यह काम कर रहा है, लेकिन इसके किनारों को तब तक काट रहा है जब तक कि यह 0 '/ 180'/360 'पर न हो। – Khawar

3

मैं प्रदान की जवाब यहां का इरादा नहीं मिला है, लेकिन

एंड्रॉयड का उपयोग कर: clipChildren = "false"

माता पिता ViewGroup और अधिभावी draw बजाय onDraw किया के लिए मेरे लिए नौकरी

अधिक जानकारी के लिए देखें: Rotating imageview and its background without cropp