2010-04-19 6 views
6

में गतिशील फ़्लिपिंग स्क्रीन (आईफोन की तरह) कैसे बना सकता हूं मैं वेब सेवा के माध्यम से डेटा पार्स कर रहा हूं। मैं लंबवत के बजाय क्षैतिज flipping करना चाहता हूँ। यहां एक ट्यूटोरियल है जहां व्यूफ्लिपर का उपयोग किया जाता है लेकिन यह स्थिर डेटा के लिए है।मैं एंड्रॉइड

Splash.java

public class Splash extends Activity{ 

     /** Called when the activity is first created. */ 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.main); 

        startActivity(new Intent(Splash.this, MainMenu.class)); 
        Splash.this.finish();          
     } 
    } 

Splash.xml

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/splash"> 
</AbsoluteLayout> 

Menu.java

public class Menu extends Activity{ 

     /** Called when the activity is first created. */ 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState);    
      setContentView(R.layout.menu);          
     } 
    } 
:


यहाँ हमारे कोड जहाँ हम 2 गतिविधियों के बीच flipping की जरूरत है

Menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/menu"> 
</AbsoluteLayout> 
+2

आपका क्या मतलब है "यहाँ एक ट्यूटोरियल जहां ViewFlipper प्रयोग किया जाता है": एक ट्यूटोरियल, ताकि आप अपनी गतिविधि के दशक में चेतन कर सकते हैं और बाहर,

का आनंद लें लिखा? –

+0

यह जांचें [उत्तर] (http://stackoverflow.com/questions/2651360/how-to-provide-animation-when-calling-another-activity-in-android/2651890#2651890) – Praveen

उत्तर

18

आप गतिशील addView का उपयोग कर एक ViewFlipper को पृष्ठ जोड़ सकते हैं।

flipper= (ViewFlipper) findViewById(R.id.flipper1); 
    flipper.addView(myView,myViewIndex); 

कहाँ MyView दृश्य को आप जोड़ना चाहते है, और myViewIndex viewflipper आप इस नए दृश्य जोड़ना चाहते हैं में सूचकांक है।

इसके बाद आप दृश्य के बदलने पर पहिले एनिमेशन सेट कर सकते हैं:

flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.left_in)); 
    flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.left_out)); 

फिर इस पृष्ठ पर फ्लिप करने के लिए आप उपयोग कर सकते हैं:

flipper.setDisplayedChild(myViewIndex); 

कहाँ left_in.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:interpolator="@android:anim/decelerate_interpolator" 
    android:fromXDelta="100%p" 
    android:toXDelta="0" 
    android:duration="300" 
    /> 
</set> 

और left_out.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:interpolator="@android:anim/decelerate_interpolator" 
    android:fromXDelta="0" 
    android:toXDelta="-100%p" 
    android:duration="300" 
    /> 
</set> 
+0

मान लीजिए कि हमारे पास अपनी संबंधित एक्सएमएल फाइलों के साथ 2 गतिविधियां हैं: स्पलैश गतिविधि -> splash.xml मेनू गतिविधि - > menu.xml अब हम इन 2 गतिविधियों के बीच कैसे फ़्लिप कर सकते हैं? यह स्पलैश से मेनू और इसके विपरीत है। –

+0

हम करेंगे यदि वे दो अलग-अलग गतिविधियां हैं तो यह एक पूरी तरह से अलग सवाल है क्योंकि आप ViewFlipper का उपयोग नहीं करेंगे। यदि वे एक्सएमएल में परिभाषित केवल दो अलग-अलग विचार हैं, तो आप उन्हें केवल व्यूफ्लिपर में जोड़ देंगे और सेटडिस्प्लेड चाइल्ड का उपयोग उनके बीच फ़्लिप करने के लिए करेंगे। – stealthcopter

+0

मैं देखता हूँ! इसलिए आईफोन को एंड्रॉइड में 2 अलग-अलग गतिविधियों के बीच फ़्लिप करना संभव है। क्या आप उपर्युक्त परिदृश्य को ध्यान में रखते हुए आवश्यक कोड पोस्ट कर सकते हैं। क्योंकि यह ऐसा कुछ है जिसे हम पहली बार कर रहे हैं। –

-4

तुम सिर्फ स्क्रीन स्थिति (के रूप में accelerometer सेंसर द्वारा निर्धारित) यह में आयोजित किया जा रहा है के आधार पर घुमाना चाहते हैं?

यदि ऐसा है तो सिर्फ अपने AndroidManifest.xml में गतिविधि नोड के लिए

android:screenOrientation="sensor" 

जोड़ने फाइल

+0

एक्सीलरोमीटर के साथ कुछ भी नहीं करना। मैं चाहता हूं कि मेरा पेज/स्क्रीन आईफोन में जैसे ही फ्लिप करे। –

+0

तो क्या आप फ्लिपिंग एनीमेशन के बारे में पूछ रहे हैं? मेरा आईफोन अनुभव सीमित है, इसलिए जब आप कहते हैं कि "आईफोन पर फ्लिप की तरह फ्लिप करें" माफ करना – snctln

3

बस आप के लिए शीघ्रता से अवलोकन किया था क्योंकि मुझे यकीन है कि मैं पहले चारों ओर देखा है था, मैं developer.android.com पर this पाया:

public void overridePendingTransition (int enterAnim, int exitAnim) 

Since: API Level 5 
Call immediately after one of the flavors of startActivity(Intent) or finish() to specify an explicit transition animation to perform next. 
Parameters 
enterAnim A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation. 
exitAnim A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation. 

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

+0

सही और एक आकर्षण की तरह काम करता है .. अधिक http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/Animation.html पर एक महत्वपूर्ण बात मिल सकती है। यह विधि एपीआई स्तर 5 और ऊपर में समर्थित है जैसा कि स्टील्थकोप्टर द्वारा भी उल्लेख किया गया है। –

0

यदि आप दो गतिविधियों के बीच नेविगेट करना चाहते हैं और दृश्य फ़्लिपर का उपयोग नहीं करना चाहते हैं तो आप सामान्य उद्देश्यों का उपयोग कर सकते हैं।

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

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