2013-03-16 7 views
10

एंड्रॉइड ओएस पर, बटन क्लिक होने पर मैं झुकाव प्रभाव प्राप्त करना चाहता हूं।विंडोज फोन पर एंड्रॉइड पर झुकाव प्रभाव कैसे प्राप्त करें?

झुकाव प्रभाव: पूरे बटन दबाए जाने के रूप में नहीं देखा जाएगा। घटना का स्पर्श करने वाला केवल भाग ही दबाया जाना चाहिए।

क्या यह एंड्रॉइड पर आसानी से संभव है?

enter image description here

उत्तर

7

एक आसान तरीका कैनवास उपयोग करने के लिए किया जाएगा 4 पक्षीय आकार आकर्षित करने के लिए आकर्षित करता है।

प्रत्येक 4 कोनों पर विचार करें। "छेड़छाड़" आयत पूर्ण आकार होगा स्पर्श किया आयताकार छोटा होगा।

Touched and untouched boxes

तुम सिर्फ एक बिंदु आप आयत के प्रत्येक भाग के लिए गणना का उपयोग कर अपने चार पक्षीय आकार आकर्षित करने के लिए की जरूरत है। आप स्पर्श स्थिति प्राप्त कर सकते हैं, फिर प्रत्येक बिंदु देने के लिए "वजन" कितना पता लगाएं।

प्रत्येक कोने गणना करने के लिए, आप यह पता लगाने की छुआ समन्वय देने के लिए कितना "वजन" की जरूरत है, और कितना "वजन" अछूता समन्वय देने के लिए। यदि आप ऊपरी बाएं कोने को स्पर्श करते हैं, तो वह कोने स्पर्श किए गए समन्वय का 100% उपयोग करेगा, और अन्य तीन कोनों में सभी अनछुए समन्वय का उपयोग करेंगे।

touched top left corner

आप शीर्ष मध्य छुआ, तो आप इस तरह एक आकार मिलेगा:

touched top middle

हम किसी भी स्पर्श स्थान के लिए कोनों की गणना कर सकते कोने से कितनी दूर की गणना के द्वारा अपने स्पर्श

touched bottom left

float untouchedXWeight1 = Math.abs(xt - x1)/width; 
    //maximum of 1, minimum of 0 

    float untouchedYWeight1 = Math.abs(yt - y1)/height; 

    float untouchedWeight1 = (untouchedXWeight1 + untouchedYWeight1)/2; 
    //also maximum of 1, minimum of 0 

    float touchedWeight1 = 1 - untouchedWeight1; 
है

इसलिए उन वजन के साथ, आप अपने x व y स्थितियां कि कोने के लिए गणना कर सकते हैं:

x1 = xUntouched1 * untouchedWeight + xTouched1 * touchedWeight1; 
y1 = yUntouched1 * untouchedWeight + yTouched1 * touchedWeight1; 

फिर अन्य 3 कोनों के लिए इसी तरह से करते हैं।

+0

का उत्तर मैं इसे व्यू ग्रुप पर लागू नहीं कर सका। क्या आपके पास कोई विचार है? – frankish

+0

क्या आपने पहले एक GLSurfaceView का उपयोग करने का प्रयास किया है? इस प्रश्न में – HalR

+0

: http://stackoverflow.com/questions/7734228/android-accessing-buttons-from-surfaceview उत्तर में से एक मूल बातें दिखाता है: – HalR

3

मैं यहाँ एक पहला मसौदा बना लिया है: https://github.com/flavienlaurent/TiltEffect

एक दूसरे चरण में, मैं यह बटन आदि

दुर्भाग्य के साथ प्रयोग करने योग्य बनाने के लिए, मैं का उपयोग नहीं किया बहुत अच्छा (लेकिन बहुत गणितीय मेरे लिए) हैलआर

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