Android Canvas два действия - контент рисуется на втором холсте - PullRequest
0 голосов
/ 14 сентября 2011

Я не знаю, как это возможно, но холст из упражнения A появляется сверху моего холста в упражнении B. Оба занятия всегда живы (они находятся в группе действий).Как вообще возможно, что содержимое холста в одном действии могло отображаться поверх моего другого занятия?

Я называю это, когда я закончу с заданием A или B, но это, очевидно, неworking:

void clearPlayerCanvas()
{
    runOnUiThread(new Runnable(){
        public void run()
        {

            Canvas canvas = null;
            try
            {

                canvas = holder.lockCanvas();

                if (canvas == null)
                {
                    System.out.println("Cannot lock canvas, skipping MJpeg frame");
                    return;
                }


                canvas.drawColor(Color.BLACK);


            } 
            finally 
            {
                if (canvas != null)
                    holder.unlockCanvasAndPost(canvas);


            }
        }
        });
}

Этот код просто перезаписывает (он должен) текущий холст черным.В любом случае, я не должен даже видеть этот черный холст в упражнении b, но я есть.Я также использую SurfaceHolder.

1 Ответ

0 голосов
/ 14 сентября 2011

У вас не должно быть двух одновременно выполняемых действий (на самом деле, я не думаю, что вы можете).

Вы не остановили рисование нити на вашем SurfaceView в ActivityA.Потоки продолжают работать, даже когда Activity делает паузу, поэтому я предполагаю, что это было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...