2010-06-21 5 views
28

के साथ गतिविधि प्रदर्शित करना मेरे पास एक विजेट है जो क्लिक होने पर गतिविधि शुरू करता है। एंड्रॉइड के मानक स्क्रॉल-ऑफ-दाएं के बजाए, मैं इस गतिविधि को प्रदर्शित करने के लिए किसी प्रकार की फैंसी एनीमेशन चाहूंगा। हालांकि, मुझे इसे स्थापित करने में समस्याएं आ रही हैं।कस्टम एनीमेशन

slide_top_to_bottom.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate android:fromYDelta="-100%" android:toXDelta="0" android:duration="100" /> 
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="50" /> 
</set> 

... जो anim.xml

<?xml version="1.0" encoding="utf-8"?> 
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" 
     android:delay="50%" 
     android:animation="@anim/slide_top_to_bottom" /> 

लेकिन तब जहां मैं इसे से संदर्भ है में संदर्भित है: यह है कि मैं क्या है? मैं गतिविधि मैं में स्लाइड करने के लिए चाहते हैं के दोनों आधार तत्व है, और साथ

android:layoutAnimation="@+anim/anim" 

मैं यह सब गलत कर रहा हो सकता है प्रकट में activitiy के प्रवेश, दोनों बार कोशिश की है। किसी भी प्रकार की मदद की बेहद सराहना की जाती है!

उत्तर

51

आप अपनी खुद की एनीमेशन के लिए एक संदर्भ के साथ एक कस्टम विषय बनाते हैं और अपने मैनिफ़ेस्ट फ़ाइल में अपनी गतिविधि में लागू कर सकता: आप की तरह नीचे

view.startAnimation(AnimationUtils.loadAnimation(
       WidgetActivity.this,R.anim.slide_top_to_bottom)); 

चेक इस link startAnimation विधि का उपयोग करें। मैं निम्नलिखित शैली परिभाषा का उपयोग कर एक फ़्लोटिंग विंडो के लिए एक कस्टम एनीमेशन लागू करने में सफल रहा था। यदि आप अपनी शैली के माता-पिता को "@android: style/Animation.Activity"

पर क्लिक करने के बारे में अधिक जानकारी के लिए निम्न फ़ाइलों को देखें, तो आप कुछ ऐसा करने में सक्षम हो सकते हैं।

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml

यहाँ मेरी styles.xml और Manifest.xml

styles.xml की मेरी एक हिस्से है

Manifest.xml

<activity 
     android:name="com.me.activity.MyActivity" 
     android:label="@string/display_name" 
     android:theme="@style/MyTheme"> 
    </activity> 
+0

धन्यवाद, यह मेरा दिन बना दिया! खाली '<शैली का नाम =" MyAnimation "/>' अनावश्यक प्रतीत होता है (यानी यह मेरे बिना मेरे लिए काम करता है)। – Thomas

6
startActivity(intent); 
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold); 

चेक इस लिंक: overridePendingTransition method

संपादित करें:

के लिए दृश्य एनीमेशन प्राप्त करने के लिए।

+2

मैं एक विजेट से गतिविधि शुरू कर, तो मैं एक startActivity() बल्कि एक setOnClickPendingIntent की जरूरत नहीं है()। मुझे ट्रांसड्रांसशन() को ओवरराइड करने के लिए कॉल कहां मिलेगी? संपादित करें: यह 2.0 और बाद के लिए भी है, मैं 1 को लक्षित कर रहा हूं।6+ – blork

+0

प्रारंभ एनीमेशन विधि। हमें उपयोग करना है। ApiDemos की जांच करें। यह मदद करता है। – Praveen

0

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

आनंद लें:

http://blog.blundell-apps.com/animate-an-activity/