दिलचस्प पोस्ट
प्रोग्रामर एक एंकर टैग से स्क्रॉल करें पीडीएफ फाइल में वॉटरमार्क कैसे जोड़ें? .NET में WebClient और HTTPWebRequest क्लासेस के बीच क्या अंतर है? IPhone पर आधारित mach_absolute_time क्या है क्या SQL सर्वर में पंक्ति स्तर लॉकिंग को लागू करना संभव है? अपने नंबर में एक्सेल कॉलम पत्र को बदलने के लिए एल्गोरिथ्म क्या है? समवर्ती हैशमैप के खिलाफ कोई समवर्ती HashSet क्यों नहीं है आर में एक अन्य समारोह के भीतर ggplot () का उपयोग करें Wget का उपयोग करके वेबसाइट से सभी फ़ाइलों को (लेकिन HTML नहीं) कैसे डाउनलोड करें? जेडीबीसी में नाममात्र पैरामीटर सक्रिय रूप से लिखा जा रहा फाइल से पढ़ने के लिए मैं जावा का उपयोग कैसे करूं? ग्रहण शुरू नहीं होगा और मैंने कुछ भी नहीं बदला है कमांड लाइन स्ट्रिंग की अधिकतम लंबाई उम्मीद के मुताबिक यादृच्छिक जनरेटर के लिए आवश्यक है नोटपैड ++ में प्रत्येक स्ट्रिंग में मौजूद सभी स्ट्रिंगों को कैसे बदल सकता है?

टुकड़ों के बीच संक्रमण चेतन

मैं टुकड़ों के बीच संक्रमण को चेतन करने की कोशिश कर रहा हूं। मुझे निम्नलिखित से जवाब मिला
एंड्रॉइड टुकड़े और एनीमेशन

FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); DetailsFragment newFragment = DetailsFragment.newInstance(); ft.replace(R.id.details_fragment_container, newFragment, "detailFragment"); // Start the animated transition. ft.commit(); 

और मेरे R.anim.slide_in_left

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="50%p" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_mediumAnimTime" /> </set> 

लेकिन जब मैंने इसे करने की कोशिश की तो यह दिखाया

 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): FATAL EXCEPTION: main 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): java.lang.RuntimeException: Unknown animator name: translate 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:129) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:126) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:93) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:72) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.app.FragmentManagerImpl.loadAnimator(FragmentManager.java:621) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:733) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:919) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.app.BackStackRecord.run(BackStackRecord.java:578) 02-08 16:27:37.961: ERROR/AndroidRuntime(1717): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1217) 

कोई विचार? जब मैंने जांच की कि हनीकॉम्ब एपीआई संदर्भ का translate है मुझसे क्या छूट गया?
क्या टुकड़ों के बीच संक्रमण को चेतन करने का कोई दूसरा तरीका है? धन्यवाद

Solutions Collecting From Web of "टुकड़ों के बीच संक्रमण चेतन"

आपको नया android.animation फ्रेमवर्क (ऑब्जेक्ट एन्निमेटर्स) का उपयोग FragmentTransaction.setCustomAnimations साथ करना होगा। सेट FragmentTransaction.setCustomAnimations साथ ही FragmentTransaction.setTransition

ApiDemos FragmentHideShow.java से setCustomAnimations का उपयोग करने पर यहां एक उदाहरण है:

 ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); 

और यहाँ Res / animator / fade_in.xml से संबंधित एनीमेटर एक्सएमएल है:

 <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:interpolator/accelerate_quad" android:valueFrom="0" android:valueTo="1" android:propertyName="alpha" android:duration="@android:integer/config_mediumAnimTime" /> 

ध्यान दें कि आप <set> का उपयोग करके कई एनिमेटरों को गठजोड़ कर सकते हैं, जैसा कि आप पुराने एनीमेशन फ्रेमवर्क के साथ कर सकते थे


संपादित करें : चूंकि लोग स्लाइड-इन / स्लाइड-आउट के बारे में पूछ रहे हैं, मैं यहां उस पर टिप्पणी करूंगा।

स्लाइड-इन और स्लाइड-आउट

आप निश्चित रूप से translationX x , translationY , x , और y गुणों को y हैं, लेकिन आम तौर पर स्लाइड में स्क्रीन को बंद करने और स्क्रीन से सामग्री को एनिमेट करना शामिल है। जहाँ तक मुझे पता है कि कोई संक्रमण गुण नहीं हैं जो सापेक्ष मान का उपयोग करते हैं। हालांकि, यह आपको स्वयं को लिखने से रोक नहीं सकता है याद रखें कि प्रॉपर्टी एनीमेशन को ऑब्जेक्टिंग (इस मामले के दृश्यों) पर setXFraction करने वाले और सेटर विधियों की आवश्यकता होती है, इसलिए आप अपने दृश्य उप-वर्ग पर बस अपने स्वयं के getXFraction और setXFraction विधियां बना सकते हैं, जैसे:

 public class MyFrameLayout extends FrameLayout { ... public float getXFraction() { return getX() / getWidth(); // TODO: guard divide-by-zero } public void setXFraction(float xFraction) { // TODO: cache width final int width = getWidth(); setX((width > 0) ? (xFraction * width) : -9999); } ... } 

अब आप 'xFraction' संपत्ति को इस तरह सजीव कर सकते हैं:

res / animator / slide_in.xml :

 <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:valueFrom="-1.0" android:valueTo="0" android:propertyName="xFraction" android:duration="@android:integer/config_mediumAnimTime" /> 

ध्यान दें कि अगर जिस ऑब्जेक्ट में आप एनिमेटिंग कर रहे हैं, उसके माता-पिता के समान चौड़ाई नहीं है, तो चीजें बिल्कुल सही नहीं दिखती हैं, इसलिए आपको अपने उपयोग के केस के अनुरूप अपनी संपत्ति के कार्यान्वयन में बदलाव करने की आवश्यकता हो सकती है।

मैंने ऐसा किया है:

एनिमेशन के साथ टुकड़ों को बदलने के लिए इस विधि को जोड़ें:

 public void replaceFragmentWithAnimation(android.support.v4.app.Fragment fragment, String tag){ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left); transaction.replace(R.id.fragment_container, fragment); transaction.addToBackStack(tag); transaction.commit(); } 

आपको एनीम फ़ोल्डर में चार एनिमेशन जोड़ना होगा जो संसाधन के साथ सहयोगी है :

enter_from_left.xml :

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="-100%" android:toXDelta="0%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"/> </set> 

exit_to_right.xml :

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700" /> </set> 

enter_from_right.xml :

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="100%" android:toXDelta="0%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700" /> </set> 

exit_to_left.xml :

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="0%" android:toXDelta="-100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"/> </set> 

आउटपुट:

यहां छवि विवरण दर्ज करें

इसका पूरा हुआ

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

यदि आप अपने आप को लॉलीपॉप और बाद में टाई कर सकते हैं, तो यह ऐसा चाल लगता है:

 import android.transition.Slide; import android.util.Log; import android.view.Gravity; . . . f = new MyFragment(); f.setEnterTransition(new Slide(Gravity.RIGHT)); f.setExitTransition(new Slide(Gravity.LEFT)); getFragmentManager() .beginTransaction() .replace(R.id.content, f, getKey()) .commit(); 

उम्मीद है की यह मदद करेगा।

यहाँ टुकड़ों के बीच / बाहर एनीमेशन स्लाइड है:

 FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.setCustomAnimations(R.animator.enter_anim, R.animator.exit_anim); transaction.replace(R.id.listFragment, new YourFragment()); transaction.commit(); 

हम एक ऑब्जेक्ट एन्निमेटर का उपयोग कर रहे हैं।

एनीमेटर सबफ़ोल्डर में ये दो एक्सएमएल फाइलें हैं I

enter_anim.xml

 <?xml version="1.0" encoding="utf-8"?> <set> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:propertyName="x" android:valueFrom="2000" android:valueTo="0" android:valueType="floatType" /> </set> 

exit_anim.xml

 <?xml version="1.0" encoding="utf-8"?> <set> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:propertyName="x" android:valueFrom="0" android:valueTo="-2000" android:valueType="floatType" /> </set> 

मुझे उम्मीद है कि किसी को मदद मिलेगी

एंड्रॉइड एसडीके फ्रैग्मेंट ट्रान्ससेक्शन का क्रियान्वयन एक Animator चाहता है, जबकि सहायता लाइब्रेरी एक Animation चाहता है, मुझे क्यों नहीं पूछें, लेकिन क्यों strangeluk की टिप्पणी के बाद मैंने एंड्रॉइड 4.0.3 कोड और सहायता लाइब्रेरी में देखा। एंड्रॉइड एसडीके loadAnimator() का उपयोग करता है और समर्थन लाइब्रेरी loadAnimation() का उपयोग करता है

किसी और के लिए, जो पकड़ा जाता है, सुनिश्चित करें कि ग्राहक को लेनदेन के लिए बनाने / बदलने के लिए कॉल करने से पहले सेटिगएवल एनाममेंट्स को कहा जाता है।