Autore Topic: OutOfMemory quando lancio un'animazione  (Letto 843 volte)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
OutOfMemory quando lancio un'animazione
« il: 20 Giugno 2013, 22:10:26 CEST »
0
Ciao a tutti, nella mia applicazione dopo aver effettuato un piccolo gioco con l'utente, lancio un'animazione mediante un'Handler. A volte l'errore che esce fuori è questo:

Codice (Java): [Seleziona]
06-20 15:48:41.165: E/AndroidRuntime(7933): FATAL EXCEPTION: main
06-20 15:48:41.165: E/AndroidRuntime(7933): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.Bitmap.nativeCreate(Native Method)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.Bitmap.createBitmap(Bitmap.java:477)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.Bitmap.createBitmap(Bitmap.java:444)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:349)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:463)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:326)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:715)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.content.res.Resources.loadDrawable(Resources.java:1713)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.content.res.Resources.getDrawable(Resources.java:585)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:267)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:805)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:746)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.content.res.Resources.loadDrawable(Resources.java:1698)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.content.res.Resources.getDrawable(Resources.java:585)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.view.View.setBackgroundResource(View.java:7659)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at com.qriket.qriket.scan.spinview.displayOneMoreGame(spinview.java:566)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at com.qriket.qriket.scan.spinview.access$9(spinview.java:553)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at com.qriket.qriket.scan.spinview$BonusDelayHandler.handleMessage(spinview.java:1057)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.os.Looper.loop(Looper.java:123)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at android.app.ActivityThread.main(ActivityThread.java:3652)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at java.lang.reflect.Method.invokeNative(Native Method)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at java.lang.reflect.Method.invoke(Method.java:507)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
06-20 15:48:41.165: E/AndroidRuntime(7933):     at dalvik.system.NativeStart.main(Native Method)

l'animazione la lancio in questo modo:

Codice (Java): [Seleziona]
  if(bonustype==1)
            {

                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
               
                qriketAnimationIV.setVisibility(View.VISIBLE);
                spinview_r_moneyearned.setText(String.format("%,.2f",wonCash));
                qriketAnimationIV.setBackgroundResource(R.drawable.wheelqriket);
                        frameAnimation = (AnimationDrawable) qriketAnimationIV.getBackground();
                frameAnimation.start();
                displayDestBk(destNumber);
               
            }

L'animazione è una sequenza di una decina di immagini png che se si ripetono all'infinito fino a quando non spingo su un bottone. il totale delle immagini sarà un 300kb. Qualcuno ha qualche idea? Grazie

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:OutOfMemory quando lancio un'animazione
« Risposta #1 il: 21 Giugno 2013, 08:04:26 CEST »
0
Dimensione delle immagini? In quale cartelle hai messo le immagini?
I numeri contano molto di più del seme.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #2 il: 21 Giugno 2013, 18:58:30 CEST »
0
Allora ho 15 immagini per un peso complessivo di quasi 300kb. Tutte le immagini sono nella cartella drawable del mio progetto.

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:OutOfMemory quando lancio un'animazione
« Risposta #3 il: 21 Giugno 2013, 23:16:18 CEST »
0
Posta  il metodo displayOneMoreGame. E' lì che genera l'eccezione :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #4 il: 22 Giugno 2013, 00:11:28 CEST »
0
Codice (Java): [Seleziona]
private void displayOneMoreGame()
        {
       
                spinview_result.setVisibility(View.VISIBLE);
                playWin();
            if(bonustype==1)
            {
                Log.d("ONE MORE GAME BONUSTYPE=1",String.valueOf(wonCash));
                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
               
                qriketAnimationIV.setVisibility(View.VISIBLE);
                spinview_r_moneyearned.setText(String.format("%,.2f",wonCash));
                qriketAnimationIV.setBackgroundResource(R.drawable.wheelqriket);
                        frameAnimation = (AnimationDrawable) qriketAnimationIV.getBackground();
                frameAnimation.start();
                displayDestBk(destNumber);
               
            } else if(bonustype==0 || bonustype==2)
            {
                Log.d("ONE MORE GAME BONUSTYPE=0",String.valueOf(wonCash));

                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
                spinview_r_moneyearned.setText(String.format("%,.2f",wonCash));

                wizardAnimationIV.setVisibility(View.VISIBLE);
                       
                        wizardAnimationIV.setBackgroundResource(R.drawable.wheelwizard);
                        frameAnimation = (AnimationDrawable) wizardAnimationIV.getBackground();
                frameAnimation.start();
            }

            if(doublePlayCount>1)
            {
                Log.d("ONE MORE GAME finito",String.valueOf(wonCash));

                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
               
                spinview_doubleornottext.setText("Good Job!");
                yesplayBtn.setVisibility(View.GONE);
                noplayBtn.setVisibility(View.GONE);
                okBtn.setVisibility(View.VISIBLE);
                callAppEndBet();
            }
        }


private void playWin()
        {
                //MediaPlayer mp = MediaPlayer.create(TestSonido.this, R.raw.win);  
                //  mp.start();
                m_ykSound.playSound(yksound.SOUND_WIN);
        }

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:OutOfMemory quando lancio un'animazione
« Risposta #5 il: 22 Giugno 2013, 14:25:15 CEST »
0
Dato che non c'è il numero delle righe lo chiedo a te... quale è la 566? :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #6 il: 22 Giugno 2013, 19:47:19 CEST »
0
ok scrivo tutta la classe:
Codice (Java): [Seleziona]
public class spinview extends BaseActivity{
        static final String TAG = "--spin view--";

        private wheelView wheelview;
        private needleView needleView;
        private LinearLayout spinview_result;

        private ImageView wizardAnimationIV;
        private ImageView qriketAnimationIV;
        private ImageView spinview_centerimg;
        private AnimationDrawable frameAnimation;
        private Button spinview_rightbtn;
        private Button spinview_leftbtn;
        private ImageView spinBtn;
        private Button yesplayBtn;
        private Button noplayBtn;
        private Button okBtn;
        private TextView spinview_startno;
        private TextView spinview_crtamount;
        private TextView spinview_targetamount;
        private TextView spinview_r_moneyearned;
        private TextView spinview_doubleornottext;
        private TextView spinview_startnobg;
        private int btnSelected;

        private String scanresultData;
        private int bonustype;
        private int betid;
        private int pickno;
        private int nextpickno;
        private int destNumber;
        private int btnAnim=0;
        private float wonCash=0;
        private int doublePlayCount=0;
        private boolean isWon=false;
        private boolean isInitRotate=false;
        private boolean closeAct=false;
        private boolean btnClicked=false;


        //private String oauthToken=null;
        private yksound m_ykSound;
        private float spinview_startnoTextSize;
        private boolean playStarsAnimation;
        private boolean spinOk;
        private String cashPrizeId;


        private ImageView spinview_wheelstar;
       
       
        private int counter;
        private boolean first;
        private BitmapDrawable drawableFirst;
        private BitmapDrawable drawableSecond;
        private ImageView helpImg;
        private ImageButton spinview_help;
        private RelativeLayout spinview_info;
        private ImageView patch;
       
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
                setContentView(R.layout.spinview);
                getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlespin);

                int usedMegs = (int)(Debug.getNativeHeapAllocatedSize() / 1024L);
                int heapsize=(int)(Debug.getNativeHeapSize() / 1024L);
                int freeSize=(int)(Debug.getNativeHeapFreeSize() / 1024L);
               
                String usedMegsString =" - Memory Heap(KB) %d:"+heapsize+" Used: %d:"+ usedMegs+"  free:%d"+freeSize;
                Params.printLog(TAG, "****************** >> "+usedMegsString);
        if(m_ykSound == null)
                m_ykSound = new yksound(this);
        m_ykSound.Init();
                Bundle b=this.getIntent().getExtras();
                if(b==null)
                        return;
               

                SharedPreferences mPrefs = getSharedPreferences(Params.SharedPreName,0);
                playStarsAnimation=mPrefs.getBoolean(Session.STARSANI, true);
               
                scanresultData=b.getString("scanresultData");
                cashPrizeId=b.getString("cashprizeid");

                try
                {
                        JSONObject o=(JSONObject)new JSONTokener(scanresultData).nextValue();
                        bonustype=o.getInt("bonustype");
                        betid=o.getInt("betid");
                        wonCash=(float)o.getDouble("startcash");
                        pickno=o.getInt("betfirstnumber");

                        //oauthToken=o.getString("oauthToken");
                }
                catch(Exception e)
                {}
               
                bonustype=1;
                spinview_wheelstar=(ImageView)findViewById(R.id.spinview_wheelstar);
                counter=1;
                first=true;
                spinview_help=(ImageButton)findViewById(R.id.spinhelp);
                spinview_info=(RelativeLayout)findViewById(R.id.spinview_info);
                helpImg=(ImageView)findViewById(R.id.spinhelpImg);
          /*  patch = (ImageView)findViewById(R.id.patchImg);
            patch.setAlpha(140);*/

                /*MARCO*/
               
                wheelview=(wheelView)findViewById(R.id.wheelview);
                if(bonustype<0 || bonustype>2)
                        bonustype=0;
               
                wheelview.setVisibility(View.DRAWING_CACHE_QUALITY_AUTO);
                wheelview.setSpinListener(new spinListener());
       
                needleView=(needleView)findViewById(R.id.spinview_needle);
                needleView.setVisibility(View.DRAWING_CACHE_QUALITY_AUTO);
                needleView.setNeedleListener(new needleListener());
                //spinview_needle=(ImageView)findViewById(R.id.spinview_needle);
               
                //needleanimation = AnimationUtils.loadAnimation(this, R.anim.wheelrotate);

               
                spinview_startno=(TextView)findViewById(R.id.spinview_startno);
                spinview_startnoTextSize=spinview_startno.getTextSize();
                spinview_startno.setText("1");
                spinview_crtamount=(TextView)findViewById(R.id.spinview_crtamount);
                spinview_targetamount=(TextView)findViewById(R.id.spinview_targetamount);

                spinview_startnobg=(TextView)findViewById(R.id.spinview_startnobg);
                spinview_r_moneyearned=(TextView)findViewById(R.id.spinview_r_moneyearned);
                spinview_doubleornottext=(TextView)findViewById(R.id.spinview_doubleornottext);
               
                spinBtn=(ImageView)findViewById(R.id.spinview_wheelwizard);

               
                spinview_help.setOnClickListener(new OnClickListener(){
                       
                        @Override
                        public void onClick(View v)
                        {
                                if(findViewById(R.id.spinview_magictop).isShown()==true)
                                                setBluGoldInfoImage();
                                else if(findViewById(R.id.spinview_doubletop).isShown()==true)
                                                setDoubleNotInfoImage();
                        }
                });
               
                /*patch.setOnClickListener(new OnClickListener(){
                       
                        @Override
                        public void onClick(View v)
                        {
                                helpImg.setVisibility(View.GONE);
                                //hideInfo();
                                //enableAllBtn();
                        }
                });
                */

               
            spinOk=false;

                helpImg.setOnClickListener(new OnClickListener(){
                       
                        @Override
                        public void onClick(View v)
                        {
                                helpImg.setVisibility(View.GONE);
                                //hideInfo();
                                //enableAllBtn();
                        }
                });
               

                spinBtn.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View v) {
                                //displayResult(2);
                                spin();
                            spinOk=false;
                            spinBtn.clearAnimation();

                        }});
                spinview_result=(LinearLayout)findViewById(R.id.spinview_result);

                spinview_rightbtn=(Button)findViewById(R.id.spinview_rightbtn);
                spinview_rightbtn.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View v) {
                                selectBtnClicked(2);
                        }});
               
                spinview_leftbtn=(Button)findViewById(R.id.spinview_leftbtn);
                spinview_leftbtn.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View v) {
                                selectBtnClicked(1);
                        }});
               
                spinview_centerimg=(ImageView)findViewById(R.id.spinview_centerimg);
               
               
                wizardAnimationIV = (ImageView) findViewById(R.id.spinview_result_wizard);
                qriketAnimationIV= (ImageView) findViewById(R.id.spinview_result_qriket);
               
                SpinFadeAnimation();
                initFadeAnimation();

                if(bonustype==0 || bonustype==2)        //magicwand
                        initMagicWandGame();
                else
                {
                        initDoubleGame();
                        doublePlayCount++;
                }      

               
                noplayBtn=(Button)findViewById(R.id.spinview_noBtn);
                noplayBtn.setOnClickListener(new OnClickListener(){public void onClick(View v){
                        noplayBtnClicked();
                }});

                yesplayBtn=(Button)findViewById(R.id.spinview_yesBtn);
                yesplayBtn.setOnClickListener(new OnClickListener(){public void onClick(View v) {
                        yesPlayBtnClicked();
                }});
               

                okBtn=(Button)findViewById(R.id.spinview_okBtn);
                okBtn.setOnClickListener(new OnClickListener(){public void onClick(View v){
                        okBtnClicked();
                }});
        }
       
        private void setBluGoldInfoImage()
        {
                helpImg.setBackgroundResource(R.drawable.helpblugold);
                spinview_info.setVisibility(View.VISIBLE);
                helpImg.setVisibility(View.VISIBLE);
                //disableAllBtn();
        }

        private void setDoubleNotInfoImage()
        {
               
                helpImg.setBackgroundResource(R.drawable.helpblugold);
                spinview_info.setVisibility(View.VISIBLE);
                helpImg.setVisibility(View.VISIBLE);
                //disableAllBtn();
        }


        private void initMagicWandGame()
        {
                //System.gc();
                final TextView myTitleText = (TextView) findViewById(R.id.titleText);
            if ( myTitleText != null ) {
                myTitleText.setText("Magic Wand");
            }
                spinview_startno.setTextSize(spinview_startnoTextSize/2f);

           
           
                wheelview.setGameMode(0);
                TextView spinview_initamount=(TextView)findViewById(R.id.spinview_initamount);
                spinview_initamount.setText(String.format("%,.2f",wonCash));
                findViewById(R.id.spinview_magictop).setVisibility(View.VISIBLE);
                findViewById(R.id.spinview_doubletop).setVisibility(View.GONE);
                spinview_rightbtn.setBackgroundResource(R.drawable.wheelbtngold);
                spinview_rightbtn.setText("GOLD");
                spinview_rightbtn.setPadding(1,1,1,1);
                spinview_leftbtn.setBackgroundResource(R.drawable.wheelbtnblue);
                spinview_leftbtn.setText("BLUE");
                spinview_leftbtn.setPadding(1,1,1,1);
                spinview_centerimg.setImageResource(R.drawable.wheelnumber);
                spinview_startno.setText("PICK A\nCOLOR");
                spinview_startno.setTextColor(Color.BLACK);
                btnSelected=0;
                spinBtn.setEnabled(false);
               
                if(playStarsAnimation)
                {
                        Message m=new Message();
                        m.obj="playstars";
                        bonudHandler.sendMessageDelayed(m, 70);
                }

        }
       
        private void initDoubleGame()
        {
                //System.gc();
               
                spinview_help.setEnabled(true);
               
                final TextView myTitleText = (TextView) findViewById(R.id.titleText);
            if ( myTitleText != null ) {
                myTitleText.setText("Double or Nothing");
            }
         
                bonustype=1;
                spinview_startno.setTextSize(spinview_startnoTextSize);
                wheelview.setGameMode(1);
                findViewById(R.id.spinview_magictop).setVisibility(View.GONE);
                findViewById(R.id.spinview_doubletop).setVisibility(View.VISIBLE);
                spinview_rightbtn.setBackgroundResource(R.drawable.wheelbtngrey);
                spinview_rightbtn.setText("HIGHER THAN");
                spinview_rightbtn.setPadding(1,1,1,1);
                spinview_leftbtn.setBackgroundResource(R.drawable.wheelbtngrey);
                spinview_leftbtn.setText("LOWER THAN");
                spinview_leftbtn.setPadding(1,1,1,1);
                spinview_centerimg.setImageResource(R.drawable.wheelnumber2);
                spinview_startno.setText("?");
                spinview_startno.setTextColor(Color.WHITE);
                displayDestBk(3);
                updatePlayAmout();
                btnSelected=0;
                isInitRotate=true;
                wheelview.startSpin(pickno);
                wheelview.invalidate();
               
       
               

        }

        private void updatePlayAmout()
        {
                spinview_crtamount.setText(String.format("%,.2f",wonCash));
                spinview_targetamount.setText(String.format("%,.2f",wonCash*2));
               
        }

        //doubleplaycount ==2 max in all cases
        private void spin()
        {
               
                if(btnSelected==0)
                        return;
               
            if (wheelview != null)
            {
                       
               
               
               
                        spinview_rightbtn.setEnabled(false);
                        spinview_leftbtn.setEnabled(false);
                        spinBtn.setEnabled(false);
                       
                        makeLose();
                       
                        if(doublePlayCount==0)
                                callAppBet(1);
                        else
                                callAppBet(0);
               
                        doublePlayCount++;
                        Log.d("DOUBLEPLAYCOUNT AFTER SPIN",String.valueOf(doublePlayCount));

                        wheelview.startSpin(destNumber);
                        wheelview.invalidate();
                        //m_ykSound.playSound(yksound.SOUND_SPIN);
                }
        }
       
        private void makeLose()
        {
                isWon=false;
                int loselandingNo=1;
                wonCash=0;
        if(bonustype==0 || bonustype==2)
        {
                if(btnSelected==1)
                        loselandingNo=1;
                else
                        loselandingNo=2;
        } else
        {
                if(btnSelected==1)
                {
                        Random i=new Random();
                        if(pickno<14)
                                loselandingNo=i.nextInt(14-pickno)+pickno+1;
                        else
                                loselandingNo=14;
                } else
                {
                        Random i=new Random();
                        if(pickno>1)
                                loselandingNo=i.nextInt(pickno-1)+1;
                        else
                                loselandingNo=1;
                }              
        }
        destNumber=loselandingNo;
        }
       
       
        public class spinListener implements OnSpinDoneListener
        {
                @Override
                public void spinDone(int i) {
                        if(isInitRotate)
                        {
                                isInitRotate=false;
                                btnSelected=0;
                                spinview_startno.setText(String.valueOf(i));
                                displayDestBk(i);
                                resetBtns();
                                //updatePlayAmout();
                        }
                        else
                        {
                                playDone(i);
                        }
                }
               

                @Override
                public void spinTick() {
                        playTick1();
                }
        }
       
        public class needleListener implements OnSpinDoneListener
        {
                @Override
                public void spinDone(int i) {

                }
               

                @Override
                public void spinTick() {

                }
        }
       

        private void playTick1()
        {
                needleView.touchedNeedle();
                playAlertTone(this.getApplicationContext());
        }
       
        private void resetBtns()
        {
               
                spinview_rightbtn.setEnabled(true);
                spinview_leftbtn.setEnabled(true);
                btnClicked=false;
                spinBtn.setEnabled(false);     
                spinview_help.setEnabled(true);
        }
       
        private void playDone(int i)
        {
        if(bonustype==1)
        {
            if(btnSelected==2)
            {
                if(pickno<destNumber/* i*/)
                {
                        Message m=new Message();
                        m.obj="displayOneMoreGame";
                        bonudHandler.sendMessageDelayed(m, 2000);
                    return;
                }
            } else if(btnSelected==1)
            {
                if(pickno>destNumber/* i*/)
                {
                        Message m=new Message();
                        m.obj="displayOneMoreGame";
                        bonudHandler.sendMessageDelayed(m, 2000);
                    return;
                }
            }
            Message m=new Message();
                m.obj="displayLost";
                bonudHandler.sendMessageDelayed(m, 2000);
        }
        else if(bonustype==0 || bonustype==2){
            if(isWon)  //if((btnSelected==1 && pickno>i) || (btnSelected==2 && pickno<i))//WIN
            {
                Message m=new Message();
                        m.obj="displayOneMoreGame";
                        bonudHandler.sendMessageDelayed(m, 2000);
            }
            else
            {
                Message m=new Message();
                        m.obj="displayLost";
                        bonudHandler.sendMessageDelayed(m, 2000);
            }
        }
        }
       
        private void displayOneMoreGame()
        {
       
                spinview_result.setVisibility(View.VISIBLE);
                playWin();
            if(bonustype==1)
            {
                Log.d("ONE MORE GAME BONUSTYPE=1",String.valueOf(wonCash));
                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
               
                qriketAnimationIV.setVisibility(View.VISIBLE);
                spinview_r_moneyearned.setText(String.format("%,.2f",wonCash));
                qriketAnimationIV.setBackgroundResource(R.drawable.wheelqriket);
                        frameAnimation = (AnimationDrawable) qriketAnimationIV.getBackground();
                frameAnimation.start();
                displayDestBk(destNumber);
               
            } else if(bonustype==0 || bonustype==2)
            {
                Log.d("ONE MORE GAME BONUSTYPE=0",String.valueOf(wonCash));

                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
                spinview_r_moneyearned.setText(String.format("%,.2f",wonCash));

                wizardAnimationIV.setVisibility(View.VISIBLE);
                       
                        wizardAnimationIV.setBackgroundResource(R.drawable.wheelwizard);
                        frameAnimation = (AnimationDrawable) wizardAnimationIV.getBackground();
                frameAnimation.start();
            }

            if(doublePlayCount>1)
            {
                Log.d("ONE MORE GAME finito",String.valueOf(wonCash));

                helpImg.setVisibility(View.GONE);
                spinview_help.setEnabled(false);
               
                spinview_doubleornottext.setText("Good Job!");
                yesplayBtn.setVisibility(View.GONE);
                noplayBtn.setVisibility(View.GONE);
                okBtn.setVisibility(View.VISIBLE);
                callAppEndBet();
            }
        }


        private void displayLost()
        {
            playLose();
           
         
            spinview_help.setEnabled(false);
            spinview_info.setVisibility(View.GONE);
               
                spinview_result.setVisibility(View.VISIBLE);
                isWon=false;
                wonCash=0;
            yesplayBtn.setVisibility(View.GONE);
                noplayBtn.setVisibility(View.GONE);
                wizardAnimationIV.setVisibility(View.GONE);
                qriketAnimationIV.setVisibility(View.GONE);
                okBtn.setVisibility(View.VISIBLE);
                spinview_r_moneyearned.setText("0.00");
               
                spinview_doubleornottext.setVisibility(View.GONE);
        }
       
        private void noplayBtnClicked() {
                closeAct=true;
                //stopAnimation();
                callAppEndBet();
                //closeAct();
        }
               
               
        private void yesPlayBtnClicked()
        {
               
                stopAnimation();
                spinview_result.setVisibility(View.GONE);
                selectBtnClicked(0);
        }
               
               
        private void okBtnClicked()
        {
                stopAnimation();
                closeAct();
        }
       
        private void closeAct()
        {
                spinview_result.setVisibility(View.GONE);
                stopAnimation();
                m_ykSound.UnInit();
               
                Log.d("WON CASH", String.valueOf(wonCash));
                if(wonCash>0)
                {
                        Intent result = new Intent(this,scanresultqrack.class);
                        result.putExtra("earnCash", wonCash);
                        result.putExtra("response", scanresultData);
       
                        if(cashPrizeId!=null && !cashPrizeId.equals(""))
                                result.putExtra("cashprizeid", cashPrizeId);

                        setResult(Activity.RESULT_OK);
                        startActivity(result);
                        finish();
                }
                else
                {
                        setResult(Activity.RESULT_OK);
                        finish();
                }
        }
       
    @Override
    public void onDestroy()
    {
        super.onDestroy();
        unbindDrawables(findViewById(R.id.spinview));
        System.gc();
    }
   
        protected void unbindDrawables(View view) {
                if(view==null)
                        return;
        if(view instanceof ImageView)
        {
                if(((ImageView) view).getDrawable()!=null)
                        ((ImageView) view).getDrawable().setCallback(null);
        }
        if (view.getBackground() != null) {
                view.getBackground().setCallback(null);
        }
        if (view instanceof ViewGroup) {
            for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
                unbindDrawables(((ViewGroup) view).getChildAt(i));
            }
            if(!((view instanceof ListView) || ( view instanceof Spinner)))
                ((ViewGroup) view).removeAllViews();
        }
    }
        private void stopAnimation()
        {
                if(frameAnimation!=null)
                        frameAnimation.stop();
                wizardAnimationIV.clearAnimation();
        if(wizardAnimationIV.getDrawable()!=null)
        {
                        for (int i = 0; i < frameAnimation.getNumberOfFrames(); ++i){
                            Drawable frame = frameAnimation.getFrame(i);
                            if (frame instanceof BitmapDrawable) {
                                ((BitmapDrawable)frame).getBitmap().recycle();
                            }
                            frame.setCallback(null);
                        }
                       
                wizardAnimationIV.getDrawable().setCallback(null);
        }
        wizardAnimationIV.setVisibility(View.GONE);
       //       spinview_needle.setAnimation(null);
        qriketAnimationIV.clearAnimation();
        if(qriketAnimationIV.getDrawable()!=null)
        {
                        for (int i = 0; i < frameAnimation.getNumberOfFrames(); ++i){
                            Drawable frame = frameAnimation.getFrame(i);
                            if (frame instanceof BitmapDrawable) {
                                ((BitmapDrawable)frame).getBitmap().recycle();
                            }
                            frame.setCallback(null);
                        }
                       
                qriketAnimationIV.getDrawable().setCallback(null);
        }
        qriketAnimationIV.setVisibility(View.GONE);
        System.gc();
        }
       
/*      private AnimationDrawable frameAnimation1;
        private void animateStar()
        {
                ImageView spinview_wheelstar=(ImageView)findViewById(R.id.spinview_wheelstar);
                spinview_wheelstar.setVisibility(View.VISIBLE);
                spinview_wheelstar.setBackgroundResource(R.drawable.wheelstars);
                frameAnimation1 = (AnimationDrawable) spinview_wheelstar.getBackground();
        frameAnimation1.start();
        }

        private void stopAnimateStar()
        {
               
                Params.printLog(TAG, "--------stopAnimateStar-----");
                frameAnimation1.stop();
                ImageView spinview_wheelstar=(ImageView)findViewById(R.id.spinview_wheelstar);
                spinview_wheelstar.clearAnimation();
       
                if(spinview_wheelstar.getDrawable()!=null)
                {
                       
                        for (int i = 0; i < frameAnimation1.getNumberOfFrames(); ++i){
                            Drawable frame = frameAnimation1.getFrame(i);
                            if (frame instanceof BitmapDrawable) {
                                ((BitmapDrawable)frame).getBitmap().recycle();
                            }
                            frame.setCallback(null);
                        }
                       
                       
                        spinview_wheelstar.getDrawable().setCallback(null);
                }
                spinview_wheelstar.setVisibility(View.GONE);
                System.gc();
        }*/

       
        private void animateStar()
        {
               
                spinview_wheelstar.setVisibility(View.VISIBLE);
                //1° parameter total time, 2° parameter time each interval
        CountDownTimer cdt=     new CountDownTimer(1950,150)
                {
                        public void onTick(long msec)
                        {      
                                switchRecicle();
                                counter++;
                        }
                        public void onFinish()
                        {
                                if(spinview_wheelstar.isShown())
                                spinview_wheelstar.setVisibility(View.GONE);
                               
                                if(drawableFirst.getBitmap()!=null && !drawableFirst.getBitmap().isRecycled() )
                                drawableFirst.getBitmap().recycle();
                               
                                if(drawableSecond.getBitmap()!=null  && !drawableSecond.getBitmap().isRecycled() )
                                drawableSecond.getBitmap().recycle();
                               
                                System.gc();
                        }
                };
                 cdt.start();
        }
       
        private void switchRecicle()
        {
                Resources res = getResources();
                String name ="wheelstars";
               
                if(counter==1)
                {
                        drawableFirst=(BitmapDrawable) res.getDrawable(returnIdDrawable(name.concat(String.valueOf(counter))));
                        spinview_wheelstar.setImageBitmap(drawableFirst.getBitmap());  
                }
                else
                {
                        if(this.first==true)
                        {
                                drawableFirst.getBitmap().recycle();
                                drawableSecond= (BitmapDrawable) res.getDrawable(returnIdDrawable(name.concat(String.valueOf(counter))));
                                spinview_wheelstar.setImageBitmap(drawableSecond.getBitmap());
                                this.first=false;
                        }
                        else if(first==false)
                        {
                                drawableSecond.getBitmap().recycle();
                                drawableFirst=(BitmapDrawable) res.getDrawable(returnIdDrawable(name.concat(String.valueOf(counter))));
                                spinview_wheelstar.setImageBitmap(drawableFirst.getBitmap());
                                this.first=true;
                        }
                }
        }

        private int returnIdDrawable(String nameBitmap)
        {      
                int result = this.getResources().getIdentifier(nameBitmap, "drawable", this.getPackageName());
                return result;
        }
        private void displayDestBk(int i)
        {

            switch(i)
            {
                case 1:
                case 8:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGBLUE));
                    break;
                case 2:
                case 9:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGPURPLE));
                    break;
                case 3:
                case 10:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGLIGHTGRAY));
                    break;
                case 4:
                case 11:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGDARKGRAY));
                    break;
                case 5:
                case 12:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGGREEN));
                    break;
                case 6:
                case 13:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGYELLOW));
                    break;
                case 7:
                case 14:
                        spinview_startnobg.setBackgroundColor(this.getResources().getColor(R.color.BGRED));
                    break;
            }
        }
       
        private AlphaAnimation alphaDown;
        private AlphaAnimation alphaUp;
        private void selectBtnClicked(int i)
        {
               
                if(i==0)
                {
                        spinview_rightbtn.clearAnimation();
                        spinview_leftbtn.clearAnimation();
                        btnSelected=0;
                       
                        if(bonustype==0)
                        {
                                Log.d("BONUSTYPE = 0 SELECTED BTN CLICKED","OK");
                                pickno=nextpickno;
                                initDoubleGame();
                        }
                        else
                        {
                                Log.d("BONUSTYPE = 1 SELECTED BTN CLICKED","OK");

                                pickno=destNumber;
                                spinview_startno.setText(String.valueOf(destNumber));
                                updatePlayAmout();
                                resetBtns();
                        }
                }
                else if(i==1) //lower or blu
                {
                        spinBtn.setEnabled(true);
                        spinview_help.setEnabled(true);
                        btnSelected=1;
               
                                spinview_rightbtn.clearAnimation();
                                spinview_leftbtn.clearAnimation();
                                alphaDown.setDuration(0);
                                spinview_rightbtn.startAnimation(alphaDown);
                                if(btnClicked==false)
                                {
                                        spinBtn.startAnimation(spinDown);
                                        btnClicked=true;
                                }

                } else if( i==2) //higher
                {
                        spinview_help.setEnabled(true);
                        spinBtn.setEnabled(true);
                        btnSelected=2;
                                alphaDown.setDuration(0);
                                spinview_leftbtn.clearAnimation();
                                spinview_rightbtn.clearAnimation();
                                spinview_leftbtn.startAnimation(alphaDown);
                        if(btnClicked==false)
                        {
                                spinBtn.startAnimation(spinDown);
                                btnClicked=true;
                        }

                }
        }
       
        private void initFadeAnimation()
        {
                alphaDown = new AlphaAnimation(1.0f, 0.2f);
                alphaUp = new AlphaAnimation(0.2f, 1.0f);
                alphaDown.setDuration(700);
                alphaUp.setDuration(700);
                alphaDown.setFillAfter(true);
                alphaUp.setFillAfter(true);
               
                alphaDown.setAnimationListener(new Animation.AnimationListener() {                
                         @Override public void onAnimationStart(Animation animation) {
                                 Params.printLog(TAG,"onAnimationStart");
                              }
                         @Override public void onAnimationRepeat(Animation animation) {

                         }
                        @Override public void onAnimationEnd(Animation animation) {
                                if(btnSelected<1)
                                {
                                        spinview_rightbtn.startAnimation(alphaUp);
                                        spinview_leftbtn.startAnimation(alphaUp);
                                }
                        }
                });
               
                alphaUp.setAnimationListener(new Animation.AnimationListener() {                
                         @Override public void onAnimationStart(Animation animation) {
                                 Params.printLog(TAG,"onAnimationStart");
                              }
                         @Override public void onAnimationRepeat(Animation animation) {

                         }
                        @Override public void onAnimationEnd(Animation animation) {
                                if(btnSelected<1)
                                {
                                        spinview_rightbtn.startAnimation(alphaDown);
                                        spinview_leftbtn.startAnimation(alphaDown);
                                }
                        }
                });
        }
        private AlphaAnimation spinDown;
        private AlphaAnimation spinUp;
       
        private void SpinFadeAnimation()
        {
                spinDown = new AlphaAnimation(1.0f, 0.2f);
                spinUp = new AlphaAnimation(0.2f, 1.0f);
                spinDown.setDuration(700);
                spinUp.setDuration(700);
                spinDown.setFillAfter(true);
                spinUp.setFillAfter(true);
               
                spinDown.setAnimationListener(new Animation.AnimationListener() {                
                         @Override public void onAnimationStart(Animation animation) {
                                 Params.printLog(TAG,"onAnimationStart");
                              }
                         @Override public void onAnimationRepeat(Animation animation) {

                         }
                        @Override public void onAnimationEnd(Animation animation) {
                               
                                if(spinOk==false)
                                {
                                        spinBtn.startAnimation(spinUp);
                                        spinBtn.startAnimation(spinUp);
                                }
                        }
                });
               
                spinUp.setAnimationListener(new Animation.AnimationListener() {                
                         @Override public void onAnimationStart(Animation animation) {
                                 Params.printLog(TAG,"onAnimationStart");
                              }
                         @Override public void onAnimationRepeat(Animation animation) {

                         }
                        @Override public void onAnimationEnd(Animation animation) {
                                       
                                if(spinOk==false)
                                {
                                        spinBtn.startAnimation(spinDown);
                                        spinBtn.startAnimation(spinDown);
                                }
                        }
                });
        }


        /*private void clearSpinAnimation()
        {
                spinview_rightbtn.clearAnimation();
                spinview_leftbtn.clearAnimation();
        }
        */

        private boolean isScriptTimeOut;

        private void callAppBet(int type)
        {
                if(oauthToken==null)
                        return;

            isScriptTimeOut=false;

                refreshScript("appbets.php?betid="+betid+"&version="+version+/*"&number="+pickno+*/"&guess="+(btnSelected-1)+"&magicwand="+type+"&oauth_token=",new betResponse());

                Message m=new Message();
                m.obj="betTimeout";
                bonudHandler.sendMessageDelayed(m, 5000);
        }
       
        Handler bonudHandler=new BonusDelayHandler();
        @SuppressLint({ "HandlerLeak", "HandlerLeak" })
        class BonusDelayHandler extends Handler
        {
                @Override
        public void handleMessage(Message msg) {
                        if((String)msg.obj=="betTimeout")
                        {
                                scriptTimeOut();
                        } else if((String)msg.obj=="displayOneMoreGame") {
                                displayOneMoreGame();
                        } else if((String)msg.obj=="displayLost") {
                                displayLost();
                        } else if((String)msg.obj=="playstars")
                        {
                                animateStar();
                        }
                }
        }
       
        private void scriptTimeOut()
        {
            isScriptTimeOut=true;
            //if(isScriptCalled)
            //    makeLose();
        }

        public class betResponse implements ResponseListener
        {
                public void onResponseReceived(String response)
                {
                         Params.printLog(TAG,"betResponse  :"+response);

                    if(isScriptTimeOut)
                        return;
                   
                    Log.d("BET RESPONSE",response);
                    try
                    {
                        JSONObject o=(JSONObject)new JSONTokener(response).nextValue();
                        isWon=(o.getInt("win")==1?true:false);
                       
                                 Params.printLog(TAG,"betResponse  isWon:"+isWon);

                            if(bonustype==0 || bonustype==2)
                            {
                                if(isWon)
                                {
                                    if(btnSelected==2)
                                        wheelview.updateDestNo(1);
                                    else
                                        wheelview.updateDestNo(2);
                                   
                                    wonCash=(float)o.getDouble("startcash");
                                    nextpickno=o.getInt("nextnumber");
                                   
                                }
                                else
                                {
                                        makeLose();
                                }
                            } else if(bonustype==1)
                            {
                                wonCash=(float)o.getDouble("startcash");
                                destNumber=o.getInt("nextnumber");
                                if(destNumber==0 || destNumber>14)
                                    makeLose();
                                else
                                        wheelview.updateDestNo(destNumber);
                            }
                    } catch(Exception e)
                    {
                                 Params.printLog(TAG,"betResponse  Exception isWon:"+isWon);
                        isWon=false;
                    }

                       
                }
        }
       
        private void callAppEndBet()
        {
                refreshScript("appendbet.php?betid="+betid+"&version="+version+"&oauth_token=",new betEndResponse());
        }

        public class betEndResponse implements ResponseListener
        {
                public void onResponseReceived(String response)
                {
                        Log.d("BET END RESPONSE", response);
                        if(cashPrizeId==null || cashPrizeId.equals(""))
                                getCashPrizeId(response);
                        Log.d("cashprizeId bet response",cashPrizeId);

                        if(closeAct==true)
                                closeAct();
                }
        }
       
        private void getCashPrizeId(String response)
        {
               
                try {
                               
                        JSONObject jo = (JSONObject)new JSONTokener(response).nextValue();
                        cashPrizeId=jo.getString("cashprizeid");
                        Log.d("CASH PRIZE ID SPINVIEW",String.valueOf(cashPrizeId));
                       
                } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }
       
        private HttpAsyncTask callScript= null;
        private void refreshScript(String script,ResponseListener rlistener) {
        if (callScript == null || callScript.getStatus().equals(AsyncTask.Status.FINISHED))
        {
                callScript = (HttpAsyncTask) new HttpAsyncTask(rlistener,script,oauthToken,false).execute((Void[])null);
               
        } else
        {
            Params.printLog(TAG, "Query already running attempting to cancel: " + callScript);
            if (!callScript.cancel(true) && !callScript.isCancelled()) {
                Params.printLog(TAG,"Unable to cancel search? Notifying the user.");
                //Toast.makeText(this ,"A search is already in progress.", Toast.LENGTH_SHORT);
                return;
            }
            callScript=null;
        }
    }
       
        private void playWin()
        {
                //MediaPlayer mp = MediaPlayer.create(TestSonido.this, R.raw.win);  
                //  mp.start();
                m_ykSound.playSound(yksound.SOUND_WIN);
        }
        private void playLose()
        {
                m_ykSound.playSound(yksound.SOUND_FAIL);

        }
       
        @Override
        public void onBackPressed()
        {
               
        }
       
        public void playAlertTone(final Context context){
            Thread t = new Thread(){
            public void run(){
                MediaPlayer player  = MediaPlayer.create(context,R.raw.tick);
                if(player!=null)
                {
                        player.start();
       
                        try {
                            Thread.sleep(player.getDuration()+30);
                            player.release();
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                }
            }
        };
        t.start();  
    }

        @Override
        public void doRefresh() {
                // TODO Auto-generated method stub
               
        }

        @Override
        public void updateNotificationNo(int i) {
                // TODO Auto-generated method stub
               
        }

        @Override
        public void refreshChallenge() {
                // TODO Auto-generated method stub
               
        }
}
la riga 566 è quella all'interno del meodo displayOneMoreGame, precisamente alla riga
Codice (Java): [Seleziona]
                qriketAnimationIV.setVisibility(View.VISIBLE);

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:OutOfMemory quando lancio un'animazione
« Risposta #7 il: 24 Giugno 2013, 08:13:14 CEST »
0
Allora ho 15 immagini per un peso complessivo di quasi 300kb. Tutte le immagini sono nella cartella drawable del mio progetto.

Ok, in che formato sono? Dimensioni in pixel? Valuterei la possibilità di spostare le immagini nelle cartelle drawable-hdpi, drwable-mdpi, ...
I numeri contano molto di più del seme.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #8 il: 24 Giugno 2013, 18:14:44 CEST »
0
Le foto sono tutte in formato .png. , le dimensioni sono 122*216 px. Perchè vorresti spostare le immagini in un'altra cartella?

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:OutOfMemory quando lancio un'animazione
« Risposta #9 il: 25 Giugno 2013, 10:02:04 CEST »
0
Perché nella cartella drawable le immagini vengono scalate in base al dispositivo. Dovresti valutare se avere immagini di diverse dimensioni e metterle nelle relativa cartelle (drawable-hdpi, drawable-mdpi, ...)
Altrimenti le immagini vanno bene così come sono mettile all'interno della cartella drawable-nopdi.

Saluti.
I numeri contano molto di più del seme.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #10 il: 25 Giugno 2013, 16:36:09 CEST »
0
Quindi pensi che sarebbe un problema di posizionamento delle immagini nella cartella drawable? Oppure potrebbe esserci qualche altro strano motivo..

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:OutOfMemory quando lancio un'animazione
« Risposta #11 il: 26 Giugno 2013, 07:54:35 CEST »
0
Beh prova a spostarle e copiarle nelle varie cartelle e vedi se c'è un miglioramento. Sicuramente così facendo ottimizzi.
I numeri contano molto di più del seme.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #12 il: 27 Giugno 2013, 02:41:59 CEST »
0
Grazie per la risposta. Probabilente ottimizzo ma non credo che risolvo il problema. Altre idee?

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:OutOfMemory quando lancio un'animazione
« Risposta #13 il: 27 Giugno 2013, 11:58:02 CEST »
0
Prova a controllare se per caso ti lancia più di un animazione, inserisci dei log nel pezzo di codice incriminato cosi vedi fino a che punto lo esegue senza problemi.
Perche se in totale sono solo 300k e un po strano l' outmemori

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:OutOfMemory quando lancio un'animazione
« Risposta #14 il: 27 Giugno 2013, 17:07:13 CEST »
0
Ok controllo ma non credo che lanci + di un'animazione alla volta..