Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android canvas.drawbitmap有时不起作用_Android_Canvas_Drawbitmap - Fatal编程技术网

Android canvas.drawbitmap有时不起作用

Android canvas.drawbitmap有时不起作用,android,canvas,drawbitmap,Android,Canvas,Drawbitmap,我使用canvas.drawbitmap(位图、矩阵、绘画)在画布上绘制位图。 是的,它大部分时间都有效!但有时它不起作用。调用方法canvas.drawbitmap()后,画布上没有任何内容 那么,怎么了 1:我从相册中选择了一张图片,得到了名为bgpistmap 2:创建了一个画布视图,它扩展了视图。然后在画布上创建一个空位图,以便在其上绘制一些内容 mBitmap = Bitmap.createBitmap(screenWidth, screenHeight,Bitmap.Config.R

我使用
canvas.drawbitmap(位图、矩阵、绘画)
在画布上绘制位图。 是的,它大部分时间都有效!但有时它不起作用。调用方法
canvas.drawbitmap()后,画布上没有任何内容
那么,怎么了

1:我从相册中选择了一张图片,得到了名为
bgpistmap

2:创建了一个
画布视图
,它扩展了
视图
。然后在画布上创建一个空位图,以便在其上绘制一些内容

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);   
}
 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();
 mCanvas.drawBitmap(bgBitmap,matrix, bitmapPaint);
 this.invalidate();
它在大部分时间都有效,但有时不起作用。

1: 我从相册中选择了一张图片,得到了名为bgBitmap的位图

2: 创建一个扩展视图的画布视图。然后,在画布上创建一个空位图,以便在其上绘制一些内容

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);   
}
 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();
 mCanvas.drawBitmap(bgBitmap,matrix, bitmapPaint);
 this.invalidate();

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

我遇到了类似的问题……起初“canvas.drawBitmap()”有效,但后来它停止了工作,这取决于我试图显示的位图。我在处理照片。我把一张24Mb的全景照片缩小到了400K左右,但即使这样也太大了。当我进一步缩小jpeg大小时(缩小分辨率-而不是降低颜色质量),它开始可靠地工作。

显示您的代码