2016-10-08 2 views
0

Я использовал canvas.drawbitmap(bitmap,matrix,paint), чтобы нарисовать растровое изображение на холсте. Да, он работал большую часть времени! Но иногда это не сработало. После того, как я назвал метод canvas.drawbitmap();, ничего не было на холсте. Итак, что не так?canvas.drawbitmap не работает иногда

1: Я выбрал фотографию из альбома и получил Bitmap, который под названием bgBitmap

2: Создано CanvasView, который проходит View. Затем создайте пустое растровое изображение на холсте, чтобы что-то нарисовать на нем.

mBitmap = Bitmap.createBitmap(screenWidth, screenHeight,Bitmap.Config.RGB_565); 
mCanvas = new Canvas(mBitmap); 
mCanvas.drawColor(Color.WHITE); 

protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawColor(getResources().getColor(R.color.color_white)); 
    canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); 
} 

3: нарисуйте картинку на холсте.

mCanvas.drawBitmap(bgBitmap,matrix, bitmapPaint); 
this.invalidate(); 

Это работало большую часть времени, но иногда это не сработало.

+0

показать свои коды – Thinsky

ответ

0

1: Я выбрал изображение из альбома и получил битмап, который назван bgBitmap;

2: Создано CanvasView, которое расширяет представление. Затем создайте пустое растровое изображение на холсте, которое будет рисовать на нем.

mBitmap = Bitmap.createBitmap(screenWidth, screenHeight,Bitmap.Config.RGB_565); 
mCanvas = new Canvas(mBitmap); 
mCanvas.drawColor(Color.WHITE); 

protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawColor(getResources().getColor(R.color.color_white)); 
    canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); 
} 

3: нарисовать картину на холсте.

mCanvas.drawBitmap(bgBitmap,matrix, bitmapPaint); 
this.invalidate(); 

это работало большую часть времени, но иногда оно не срабатывало.

Смежные вопросы