animation - Animate android Gridview Items -
मैं सजीव करना चाहता हूं एक ग्रिडव्यू के आइटम, इस तरह से कि प्रत्येक आइटम को केंद्र के केंद्र में केंद्रित किया जाता है और एक आइटम दिखाई देता है, और फिर ग्रिड आइटम उसकी मूल स्थिति में वापस आ जाते हैं मैंने स्पष्टता के लिए चित्र जोड़ दिए हैं I एनीमेशन का प्रवाह अंजीर 1- अंजीर 2- अंजीर 3 - अंजीर 4 - अंजीर 1. यह कैसे किया जा सकता है?
मैंने इस तरह से इस समस्या का समाधान किया:
ए ग्रिडव्यू के कुल चौड़ाई (डब्लू) और ऊंचाई (एच) खोजें।
डब्लू = (चौड़ाई ओफ़ईआईटीआईएम * कुल आईटैम) + (स्पेसिंग बैटिविंगइटीम्स * (कुल आईटीएम -1)) एच = (ऊंचाईओफ़ीआईटीम * कुल आईटम) + (spacingBetweenItems * (totalItem-1)) बी। ग्रिडव्यू के केंद्र (सीएक्स, सीआई) का पता लगाएं; सीएक्स = चौड़ाई / 2, साइ = ऊंचाई / 2 एक्स समीकरण (सीएक्स) प्रत्येक आइटम के लिए एक पंक्ति में बदल जाएगा Y समीकरण (Cy) प्रत्येक आइटम के लिए एक स्तंभ में बदल जाएगा।
सी।
-
स्थिति (0,0) पर ग्रिड आईटीएम के लिए मैट्रिक्स।
अनुवाद के लिए प्रतिशत का पता लगाएं
x% = (सीएक्स / डब्ल्यू) * 100, y% = (साइ / डब्ल्यू) * 100
मैट्रिक्स की स्थिति (0,1) पर ग्रिड आईटीएम के लिए, एक्सडेलटा = 0 से एक्सडेलटा = x% p से वाई डेलटा = 0 से वाई डेलटा = या% पी
-
ग्रिडव्यू के केंद्र के एक्स समन्वयन इस मद के करीब है, इसलिए हमें घटाया जाना है (चौड़ाई ओफ़आईआईटीआईटम + स्पेसिंगबेटिन इटम्स)।
अब सीएक्स = सीएक्स - (चौड़ाईओफ़ईईईईटीम + स्पेसिंगबीटीइनइम्स) < पी> इस मामले में केवल एक्स समन्वय बदल जाएगा। Y सह-समन्वय समान रहेगा।
अनुवाद के लिए प्रतिशत का पता लगाएं:
x% = (सीएक्स / डब्ल्यू) * 100, वाई% = (साइ / डब्ल्यू) * 100
स्थिति से ग्रैड आईटीएम के लिए (1.0) पर एक्सडेलटा = 0 से एक्सएंडटाईटा = x% p से वाई डेलटा = 0 से वाई डेलटा = या% पी
-
मैट्रिक्स का।
ग्रिडव्यू के केंद्र का वाई समन्वय इस मद के करीब है, इसलिए हमें घटाया जाना है (heightOfTheItem + spacingBetweenItems)।
अब Cy = Cy - (ऊँचाई TheThetem + spacingBetweenItems)
इस मामले में केवल वाई समन्वय बदल जाएगा। x सह-समन्वय वस्तु के समान (0,0) पर रहेगा।
अनुवाद के लिए प्रतिशत का पता लगाएं
x% = (सीएक्स / डब्ल्यू) * 100, Y% = (साइ / डब्ल्यू) * 100
आइटम से एक्सडेलटा = 0 से एक्सडेलटा = x% p से वाई डील्टा = 0 से वाईडेलटा = या% पी
-
मैट्रिक्स की स्थिति (1,1) पर ग्रिड-आइटम के लिए।
ग्रिडव्यू के केंद्र के एक्स समन्वयन इस आइटम के करीब है, इसलिए हमें (चौड़ाई ओफ़ईआईटीआईटम + स्पेसिंगबेटिनइटम) घटा देना होगा ।
अब सीएक्स = सीएक्स - (चौड़ाई ओफ़ईईईआईटीएम + स्पेसिंगबेटिन इटम्स)
ग्रिडव्यू के केंद्र का वाई समन्वय इस मद के करीब है, इसलिए हमें कटौती (heightOfTheItem + अनुवाद के लिए -
x% = (सीएक्स / डब्ल्यू) * 100, वाई% = (साइ / डब्ल्यू) * 100;
आइटम से एक्सडेलटा = 0 से एक्सडेलटा = x% p fromYDelta = 0 toYDelta = y% p
इस तरह से सभी वस्तुओं के लिए x% और y% के मानों की गणना करें GridView में।
केंद्रीय आइटम से परे एक पंक्ति में आइटम के लिए toxDelta होगा -वे।
केंद्रीय आइटम से परे एक कॉलम में आइटम toDDELTA होगा - Ve।
केंद्र में वस्तुओं के अधिक सटीक संरेखण के लिए (एनीमेशन के बाद) ग्रिडव्यू के केंद्र में प्रत्येक आइटम के केंद्र के समन्वयन को जोड़ने और घटाने पर विचार करें। > आइटम को अपनी मूल स्थिति से केंद्र तक ट्रांसफ़ॉर्म करने के बाद, यदि आप उन्हें अपनी मूल स्थिति में वापस अनुवाद करना चाहते हैं तो सिर्फ डेल्टा -एव के मूल्यों को बनाएं।
यह मैंने किया है (0,0) पर ग्रिडव्यू आइटम:
& lt; अनुवाद करें एंड्रॉइड: अवधि = " 600 "एंड्रॉइड: fromXDelta =" 0% p "एंड्रॉइड: fromYDelta =" 0% p "एंड्रॉइड: toXDelta =" - 7.8% p "एंड्रॉइड: toDDelta =" 33.40% p "/ & gt; & Lt; एंड्रॉइड अनुवाद: अवधि = "600" एंड्रॉइड: fromXDelta = "0% p" एंड्रॉइड: fromYDelta = "0% p" एंड्रॉइड: startoffset = "1050" एंड्रॉइड: toXDelta = "7.8% p" एंड्रॉइड: toYDelta = "- 33.40% पी "/ & gt;
Comments
Post a Comment