canvas.drawbitmap有时不起作用

时间:2016-10-08 03:28:05

标签: android canvas drawbitmap

我使用canvas.drawbitmap(bitmap,matrix,paint)在画布上绘制位图。 是的,它大部分时间都有效!但有时它不起作用。在调用方法canvas.drawbitmap();后,画布上没有任何内容 那么,出了什么问题?

1:我从相册中选择了一张图片,并获得了名为bgBitmap

的位图

2:创建了一个扩展CanvasView的{​​{1}}。然后在画布上创建一个空位图,在其上绘制一些东西。

View

3:在画布上画画。

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);   
}

大部分时间都有效,但有时它不起作用。

2 个答案:

答案 0 :(得分:0)

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();

它在大多数时间都有效,但有时它不起作用。

答案 1 :(得分:0)

我有一个类似的问题....起初" canvas.drawBitmap()"工作,但它停止工作,取决于我试图显示的位图。我正在处理照片。我将一张24Mb的全景照片缩小到大约400K,但即使这样太大了。当我进一步缩小jpeg尺寸时(缩小分辨率 - 不降低颜色质量),它开始可靠地工作。