использование dispatchDraw (Canvas) для получения подраздела предварительного просмотра видео - PullRequest
0 голосов
/ 29 июля 2010

Ниже приведен переопределенный dispatchDraw в подклассе SurfaceView.Я пытаюсь изменить параметры Surface (получаю только подраздел предварительного просмотра видео.

@ Override

       public void dispatchDraw (Canvas canvas) {
        Log.d(TAG,"**************inside dispatchDraw************");

        int VIEW_WIDTH = canvas.getWidth(); 
        int VIEW_HEIGHT = canvas.getHeight();
        Log.d(TAG,"**************inside dispatchDraw************" + Integer.toString(VIEW_WIDTH) + " ," + Integer.toString(VIEW_HEIGHT));

        int newWidth = 400;  

        int newHeight = 240; 
        float scaleWidth = ((float) newWidth) / VIEW_WIDTH;  

        float scaleHeight = ((float) newHeight) / VIEW_HEIGHT;  


        Matrix matrix = new Matrix();  

        matrix.postScale(scaleWidth, scaleHeight);  

        canvas.setMatrix(matrix);
        super.dispatchDraw(canvas);
        Log.d(TAG,"**************inside dispatchDraw-after super************");

    }

Почему приведенный выше код не изменяет размеры SurfaceViewвообще?

1 Ответ

1 голос
/ 29 июля 2010

Поскольку SurfaceView не использует холст иерархии представления для рисования.

...