Bitmap da tela de dimensionamento do Android

Eu tenho um aplicativo de desenho que permite ao usuário desenhar em uma tela em branco. Estou tentando desenhar uma 'miniatura' em escala do bitmap atual para que, quando o usuário for dimensionado na Visualização, eles possam fazer referência à miniatura para ter uma ideia de onde estão na tela de desenho geral. O dimensionamento está funcionando e estou exibindo a miniatura no local correto, mas parece que a miniatura não está sendo atualizada nos onDraws subsequentes quando novas linhas / formas são adicionadas.

Para que eu tenha acesso ao bitmap subjacente a esta visualização (para mostrar a miniatura, seja capaz de salvar facilmente o bitmap em um arquivo etc.), faça o seguinte em onSizeChanged () para a Visualização:

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);

    // set the canvas height, panning, etc, based on the now inflated View
    mWidth      = getWidth();
    mHeight     = getHeight();
    mAspectRatio    = mWidth / mHeight;
    mPanX       = 0;
    mPanY       = 0;

    // create the Bitmap, set it to the canvas
mBitmap = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.ARGB_8888);
mCanvas.setBitmap(mBitmap);
draw(mCanvas);
}

Em seguida, quando o usuário desenha e invalida () é chamado, eu faço o seguinte no onDraw () para gerar a miniatura:

@Override
protected void onDraw(Canvas canvas) {
    <snipped code that draws paths, shapes to canvas>

    if (mScaled) {
        Bitmap out = Bitmap.createScaledBitmap(mBitmap, (int) thumbWidth, (int) thumbHeight, false);
        canvas.drawBitmap(out, null, thumbnailRectF, thumbCanvasPaint);
    }
}

A miniatura é exibida no espaço definido por thumbnailRectF usando o thumbCanvasPaint, mas nas chamadas onDraw () subsequentes, o bitmap dimensionado não mudou de seu estado original, mesmo que a tela ativa de tamanho completo mostre todos os desenhos, etc. em alguns testes, parece-me que enquanto estou configurando o Bitmap com a chamada inicial para desenhar (mCanvas) ;, onDraws subsequentes estão gravando no Bitmap subjacente em vez do especificado em onSizeChanged ().

Então, acho que estou tentando descobrir como vincular a tela do onDraw a um bitmap que eu posso acessar rapidamente para realizar redimensionamentos, salvar etc.essa questão, Pensei que o sorteio (mCanvas); A chamada amarraria o onDraw ao bitmap especificado no mCanvas (no meu caso, mBitmap), mas, na prática, ele não parece estar funcionando, no que diz respeito às atualizações na tela.

Obrigado,

Paulo

questionAnswers(2)

yourAnswerToTheQuestion