Startbildschirm

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Startbildschirm

    Hallo.
    Ich habe für meine App einen Startbildschirm programmiert, der mit AnimationDrawable die Farben ändert.

    Hier die background_animation_xml:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    3. <item
    4. android:drawable="@drawable/first_layer"
    5. android:duration="3500"/>
    6. <item
    7. android:drawable="@drawable/second_layer"
    8. android:duration="3500"/>
    9. <item
    10. android:drawable="@drawable/third_layer"
    11. android:duration="3500"/>
    12. </animation-list>
    Alles anzeigen

    Hier der Code in der MainActivity:

    Quellcode

    1. RelativeLayout myActivity;
    2. AnimationDrawable animationDrawable;
    3. myActivity = (RelativeLayout) findViewById(R.id.myActivity);
    4. animationDrawable = (AnimationDrawable) myActivity.getBackground();
    5. animationDrawable.setEnterFadeDuration(1500);
    6. animationDrawable.setExitFadeDuration(3500);
    7. animationDrawable.start();
    Das funktioniert auch. Allerdings hätte ich gerne, dass der Display sofort seine Farben verändert. Bei mir dauert es allerdings die 3,5 Sekunden. Geht das irgendwie, dass es sich sofort verändert?
  • Hi,

    so wie ich das verstanden habe, ist android:duration die Zeit, die der Frame angezeigt werden soll. Ich würde mal versuchen, dem ersten Item eine duration von 100 oder so zu geben. Dann sollte das ganze schneller starten. (Habe das aber nicht getestet )
  • Hallo

    Also so wie du uns den code gegeben hast wird er wohl nicht laufen.

    Denn du hast vergessen auch deine animation-list zu laden.

    myActivity.setBackgroundResource(R.drawable.background_animation_xml);



    Die Duration in der XML Datei ist die Zeit die das Bild angezeigt wird. Danach wird das zweite mit seiner Duration angezeigt.


    animationDrawable.setEnterFadeDuration(1500); ist die Zeit di es braucht bis das Bild voll eingeblendet ist.


    animationDrawable.setExitFadeDuration(3500); ist die Zeit die es bracht bis das Bild voll ausgeblendet ist. Erst danach wird das nächste Bild wider eingeblendet.



    Somit dauert es bei dir 1,5 sec einblenden | 3,5 sec anzeigen | 3,5 sec wieder ausblenden. usw.



    Wenn du kein ein und ausblenden brauchst kannst du das auch weglassen.


    Wie du die Animation nur ein Mal abspielst weist du ja schon.


    Wenn das Bild sofort geladen sein soll würde ich das einblenden weglassen. Vielleicht ein kurzes ausblenden.
    Ein Feedback auf Tipps ist auch schön. :P