2011-03-19 7 views
7

का उपयोग करके मेरे एंड्रॉइड ऐप में मेरे पास एक छवि है जो लोड हो जाती है। इस छवि के साथ उपयोगकर्ता ज़ूम इन, आउट और इसे आगे और आगे ले जा सकता है। वर्तमान में मैं केवल एक समय में काम करने के लिए एक प्राप्त कर सकता हूं।सेटस्केल और सेटट्रांसलेट (मैट्रिक्स)

बहुत सारे परीक्षण के बाद मैंने यह निर्धारित किया है कि जो भी मैं दूसरे को कॉल करता हूं वह वह है जो काम करता है।

matrix.setScale(zoom, zoom); // this will not work 
matrix.setTranslate(currentX, currentY); // this will work 
canvas.drawBitmap(image, matrix, null); 

अगर मैं सभी एक ही कोड भाग गया लेकिन बस बंद setScale दूसरा यह तो काम करेगा लेकिन setTranslate अभ्यस्त।

ऐसा लगता है कि यह एक साधारण जवाब होना चाहिए। बीटीडब्ल्यू: जिस तरह से मेरा कोड पोस्ट का उपयोग कर स्थापित किया गया है वह व्यावहारिक नहीं होगा।

matrix.postScale(); 
matrix.postTranslate(); 

अग्रिम

उत्तर

18

धन्यवाद जब आप सेट * के किसी भी() विधि फोन आप मैट्रिक्स की संपूर्ण सामग्री की जगह। आपके पहले उदाहरण में, केवल setTranslate() को ध्यान में रखा जाता है। अनुवाद और स्केल ऑपरेशंस को गठबंधन करने के लिए आपको पूर्व *() और पोस्ट *() विधियों का उपयोग करने की आवश्यकता है।

+1

आह, मुझे लगता है कि यह रीसेट किया जा रहा था। यद्यपि यह अजीब है कि यह रीसेट हो गया है, ऐसा लगता है कि यह फिर से चला जाता है कि 'सेट' का अर्थ क्या है। धन्यवाद – Paramount

0

प्रतिक्रिया कोड रोमेन

matrix.setScale(zoom, zoom); // this will not work 
matrix.postTranslate(currentX, currentY); // this will work 
canvas.drawBitmap(image, matrix, null); 
संबंधित मुद्दे