canvas.drawbitmap иногда не работает
Я использовал canvas.drawbitmap(bitmap,matrix,paint)
рисовать растровое изображение на холсте. да, это работало большую часть времени! Но иногда это не сработало. После того, как я назвал метод, на холсте ничего не было canvas.drawbitmap();
Так что не так?
1: я выбрал изображение из альбома и получил растровое изображение с именем 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();
Это работало в большинстве случаев, но иногда не работало.
2 ответа
1: я выбрал изображение из альбома и получил растровое изображение с именем bgBitmap;
2: Создан CanvasView, который расширяет View.Then, Создайте пустое растровое изображение на холсте, чтобы нарисовать что-то на нем.
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();
это работало большую часть времени, но иногда это не работало.
У меня была похожая проблема.... сначала "canvas.drawBitmap()" работал, но потом он перестал работать, в зависимости от того, какое растровое изображение я пытался отобразить. Я работал с фотографиями. Я уменьшил 24Mb панорамы до 400K, но даже это было слишком большим. Когда я уменьшил размер jpeg еще больше (уменьшение разрешения - без снижения качества цвета), он начал работать надежно.