Autore Topic: Problema aggiunta altro elemento in una AnimationDrawable  (Letto 1184 volte)

Offline lucacali87

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg dual
  • Sistema operativo:
    windows seven
Problema aggiunta altro elemento in una AnimationDrawable
« il: 10 Dicembre 2011, 10:57:00 CET »
0
Salve,sto provando da un giorno ad aggiungere un altro frame ad una animazione,ma come lo faccio il sistema crasha,sia che aggiungo tramite xml che se lo faccio tramite codice java.Ho aggiunto i frame da 0 a 12,come metto un possibile tredicesimo frame  il sistema crasha,sia da emulatore che da cellulare.C'è qualche limitazione?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema aggiunta altro elemento in una AnimationDrawable
« Risposta #1 il: 10 Dicembre 2011, 13:24:16 CET »
0
logcat....
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline lucacali87

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg dual
  • Sistema operativo:
    windows seven
Re:Problema aggiunta altro elemento in una AnimationDrawable
« Risposta #2 il: 10 Dicembre 2011, 13:31:12 CET »
0
ovvio,mi son dimenticato,eccolo

Codice: [Seleziona]
12-10 13:29:05.907: D/szipinf(22657): Initializing inflate state
12-10 13:29:05.937: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed 53K, 50% free 2692K/5379K, external 0K/0K, paused 23ms
12-10 13:29:05.977: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed 4K, 50% free 2701K/5379K, external 76K/587K, paused 23ms
12-10 13:29:06.037: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2701K/5379K, external 1426K/1938K, paused 26ms
12-10 13:29:06.157: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2702K/5379K, external 4463K/4463K, paused 23ms
12-10 13:29:06.287: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2702K/5379K, external 7501K/7681K, paused 19ms
12-10 13:29:06.397: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2702K/5379K, external 10538K/11236K, paused 19ms
12-10 13:29:06.507: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2703K/5379K, external 13576K/14274K, paused 20ms
12-10 13:29:06.627: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2703K/5379K, external 16613K/17311K, paused 21ms
12-10 13:29:06.767: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2703K/5379K, external 19651K/20349K, paused 27ms
12-10 13:29:06.867: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2704K/5379K, external 22688K/23386K, paused 18ms
12-10 13:29:06.987: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2704K/5379K, external 25726K/26424K, paused 24ms
12-10 13:29:07.107: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2705K/5379K, external 28763K/29461K, paused 19ms
12-10 13:29:07.227: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2705K/5379K, external 31801K/32499K, paused 20ms
12-10 13:29:07.337: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2705K/5379K, external 34838K/35536K, paused 21ms
12-10 13:29:07.457: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed <1K, 50% free 2706K/5379K, external 37876K/38574K, paused 22ms
12-10 13:29:07.567: D/dalvikvm(22657): GC_EXTERNAL_ALLOC freed 2K, 50% free 2705K/5379K, external 40913K/41611K, paused 22ms
12-10 13:29:07.577: E/dalvikvm-heap(22657): 3110400-byte external allocation too large for this process.
12-10 13:29:07.607: E/GraphicsJNI(22657): VM won't let us allocate 3110400 bytes
12-10 13:29:07.607: D/dalvikvm(22657): GC_FOR_MALLOC freed <1K, 50% free 2705K/5379K, external 40913K/41611K, paused 16ms
12-10 13:29:07.607: D/AndroidRuntime(22657): Shutting down VM
12-10 13:29:07.607: W/dalvikvm(22657): threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-10 13:29:07.607: E/AndroidRuntime(22657): FATAL EXCEPTION: main
12-10 13:29:07.607: E/AndroidRuntime(22657): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.Bitmap.nativeCreate(Native Method)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.Bitmap.createBitmap(Bitmap.java:477)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.Bitmap.createBitmap(Bitmap.java:444)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:349)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:498)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:473)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.content.res.Resources.loadDrawable(Resources.java:1785)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.content.res.Resources.getDrawable(Resources.java:588)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:267)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.content.res.Resources.loadDrawable(Resources.java:1770)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.content.res.Resources.getDrawable(Resources.java:588)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.view.View.setBackgroundResource(View.java:7555)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at animazioni.anim.AnimazioniActivity.onCreate(AnimazioniActivity.java:19)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.app.ActivityThread.access$1500(ActivityThread.java:123)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.os.Handler.dispatchMessage(Handler.java:99)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.os.Looper.loop(Looper.java:130)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at android.app.ActivityThread.main(ActivityThread.java:3835)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at java.lang.reflect.Method.invokeNative(Native Method)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at java.lang.reflect.Method.invoke(Method.java:507)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-10 13:29:07.607: E/AndroidRuntime(22657):         at dalvik.system.NativeStart.main(Native Method)
12-10 13:29:10.217: I/Process(22657): Sending signal. PID: 22657 SIG: 9

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema aggiunta altro elemento in una AnimationDrawable
« Risposta #3 il: 10 Dicembre 2011, 14:22:29 CET »
+1
java.lang.OutOfMemoryError stai chiedendo un po troppo al dispositivo/emulatore.... o ottimizzi un po le immagini/frame o il codice, hai esaurito la memoria a disposizione,...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline lucacali87

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg dual
  • Sistema operativo:
    windows seven
Re:Problema aggiunta altro elemento in una AnimationDrawable
« Risposta #4 il: 10 Dicembre 2011, 14:51:06 CET »
0
erano di risoluzione troppo alta(340x720 mi sembra) le immagini,ora ho abbassato la risoluzione di un bel pò e funziona,.
Grazie
« Ultima modifica: 11 Dicembre 2011, 12:09:09 CET da lucacali87 »

Offline lucacali87

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg dual
  • Sistema operativo:
    windows seven
Re:Problema aggiunta altro elemento in una AnimationDrawable
« Risposta #5 il: 11 Dicembre 2011, 12:10:05 CET »
0
secondo voi è corretto scritto così?con l'interfaccia animata occupa 50mb di ram,senza una interfaccia ne occupa 15 :(

Codice (Java): [Seleziona]
package progetto.gruppo0506;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;

public class AvvioActivity extends Activity {
        private Handler myHandler;
        private Localizzazione l;
        private ImageView img;
        private Timer t = new Timer();
        private MyAnimationRoutine mar;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.avvio_activity);
               
                //Oggetti per l'animazione
                img=(ImageView)findViewById(R.id.imageView1);
                img.setBackgroundResource(R.drawable.animation);
                mar = new MyAnimationRoutine();
           
            t.schedule(mar,10);
           
            l = new Localizzazione(this);
        }

        @Override
        protected void onStart() {
                // TODO Auto-generated method stub
                super.onStart();
               
                /* Thread utilizzato per attendere il rilevamento della posizione */
                initializing();

                /* Handler che riceve dei messaggi dal Thread */
                myHandler = new Handler() {

                        @Override
                        public void handleMessage(Message msg) {

                                if (msg.getData().getBoolean("rilevato")) {
                                        Intent i = new Intent(AvvioActivity.this,
                                                        InfoPosizioneInizialeActivity.class);
                                       
                                        GestioneInterfaccia.setLocalizzazione(l);
                                        t.cancel();
                                        startActivity(i);
                                }

                        }

                };
        }

        private void initializing() {

               
                /* Thread utilizzato per attendere il rilevamento della posizione */
                new Thread() {

                        @Override
                        public void run() {

                                /* Attendo che sia rilevata una nuova posizione */
                                while (!l.isInfoPosizioneRilevata()) {
                                }

                                /*
                                 * Creo il messagio e lo invio permettendo al Thread di
                                 * comunicare all'esterno
                                 */

                                //Visualizzazione logo animato
                               
                               
                                Message msg = myHandler.obtainMessage();
                                Bundle b = new Bundle();
                                b.putBoolean("rilevato", true);
                                msg.setData(b);
                                myHandler.sendMessage(msg);
                        }

                }.start();

        }

        @Override
        protected void onRestart() {
                // TODO Auto-generated method stub
                super.onRestart();
                l = GestioneInterfaccia.getLocalizzazione();
               
                /*
                 * In questo modo anche se torno su quest'attività per una seconda volta
                 * mi assicuro che prima di uscirne sia rievata una nuova posizione
                 */

                if (l.isInfoPosizioneRilevata()) {
                        l.setInfoPosizioneRilevata(false);
                }
        }
       
        class MyAnimationRoutine extends TimerTask
    {
    MyAnimationRoutine(){
    }
   
    //Metodo per l'avvio dell'animazione
    public void run()
    {
        ImageView img = (ImageView)findViewById(R.id.imageView1);
        // Ottiene lo sfondo che è stato compilato per l'oggetto AnimationDrawable
        AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

        //Avvia l'animazione
        frameAnimation.start();
    }
    }
« Ultima modifica: 11 Dicembre 2011, 13:20:12 CET da lucacali87 »

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Problema aggiunta altro elemento in una AnimationDrawable
« Risposta #6 il: 12 Dicembre 2011, 10:25:58 CET »
0
Mi sembra stillisticamente corretto, l'occupazione di memoria è dovuta alle immagini. Io sto usando un metodo del genere (android - &quot;Smart&quot; image scaling down and variables deep description - Stack Overflow) ed ho avuto notevoli risultati, anche se non l'ho ancora implementato per un animationdrawable. Concettualmente dovrebbe funzionare.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game