2013-09-05 4 views
5

में एक पथ का आकार बदलें मैंने अपने कैनवास में एक रास्ता खींचा है। एकल टैप पर मैं पथ का आकार बदलना चाहता हूं। मान लें कि मैं इसे मूल आकार को दोगुना बनाना चाहता हूं।एंड्रॉइड कैनवास

मैंने path.transform को आजमाया है, लेकिन यह कैनवास में एक अलग स्थान पर पथ को स्थानांतरित करता है। यह वह कोड है जिसका उपयोग मैंने

Matrix translateMatrix = new Matrix(); 
translateMatrix.setTranslate(100,0); 
p.transform(translateMatrix); 

मैं एंड्रॉइड में पथ का आकार कैसे बदल सकता हूं?

उत्तर

16

मैंने smitalm द्वारा प्रदान किए गए समाधान की कोशिश की है। फिर भी पथ अपने स्थान को स्थानांतरित कर रहा था। मैंने इस तरह से कोशिश की है और यह मेरे लिए काम किया है।

Matrix scaleMatrix = new Matrix(); 
RectF rectF = new RectF(); 
path.computeBounds(rectF, true); 
scaleMatrix.setScale(1.25f, 1.25f,rectF.centerX(),rectF.centerY()); 
path.transform(scaleMatrix); 
5

Havent अपने आप से यह किया है, लेकिन आप शायद

Matrix scaleMatrix = new Matrix(); 
scaleMatrix.setScale(sx,sy, px, py); 
p.transform(scaleMatrix); 

का उपयोग करना चाहिए जहां sx,sy अपने मामले में 2,2 होना चाहिए, अगर आप डबल आकार और px,py शायद आपके मामले में 0.5,0.5 होना चाहिए चाहते

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने आपके कोड की कोशिश की। यह स्केलिंग है लेकिन साथ ही यह अपनी स्थिति बदल देता है। मैं इसे केंद्र पर स्केल करना चाहता हूं। मैं उसे कैसे कर सकता हूँ? – Zach

+0

@Zach तो आपको setScale संस्करण का उपयोग करना होगा जो पिवोट्स को अनुमति देता है, संपादित उत्तर देखें। – hendrix

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