添加到 canvas(android 工作室)时显示为蓝色的位图
Bitmaps appearing with a blue tint when added to a canvas (android studio)
我一直在尝试将位图添加到 canvas,但到目前为止发现我添加的每个图像都有蓝色调。将图像添加到 canvas 时我没有使用颜料。我的代码在下面,我附上了屏幕截图和原始图像。
谢谢大家的帮助!
while(isItOk) {
if (!holder.getSurface().isValid()) {
continue;
}
Canvas c = holder.lockCanvas();
c.drawBitmap(cuttingBoard,0,0,null);
c.drawText("0",(float)c.getWidth()/2-50,(float)120, textPaint);
c.drawText("0/10",(float)30,(float)120, textPaint);
time = Math.round((frame/FPS) *10)/10.0;
frame++;
c.drawText(time +"s",(float)c.getWidth() - 410,(float)120, textPaint);
holder.unlockCanvasAndPost(c);
try{Thread.sleep(1000/FPS);}catch(Exception ex){
ex.printStackTrace();
}
}
蓝色图像,出现在我的 android 设备上的图像:
原图:
这个帖子可能看起来像是我在自言自语,但我想我会 post 我的发现,以防其他人 运行 遇到这个问题。问题是 SurfaceHolder 的格式。它只能设置为 32 位 RGBA。位图只能在前面配置 Alpha 管道(我认为这是正确的术语?),而 PNG 在后面包含 Alpha 管道。所以我只是将我所有的位图保存为 PNG,它解决了我的问题!
我一直在尝试将位图添加到 canvas,但到目前为止发现我添加的每个图像都有蓝色调。将图像添加到 canvas 时我没有使用颜料。我的代码在下面,我附上了屏幕截图和原始图像。
谢谢大家的帮助!
while(isItOk) {
if (!holder.getSurface().isValid()) {
continue;
}
Canvas c = holder.lockCanvas();
c.drawBitmap(cuttingBoard,0,0,null);
c.drawText("0",(float)c.getWidth()/2-50,(float)120, textPaint);
c.drawText("0/10",(float)30,(float)120, textPaint);
time = Math.round((frame/FPS) *10)/10.0;
frame++;
c.drawText(time +"s",(float)c.getWidth() - 410,(float)120, textPaint);
holder.unlockCanvasAndPost(c);
try{Thread.sleep(1000/FPS);}catch(Exception ex){
ex.printStackTrace();
}
}
蓝色图像,出现在我的 android 设备上的图像:
原图:
这个帖子可能看起来像是我在自言自语,但我想我会 post 我的发现,以防其他人 运行 遇到这个问题。问题是 SurfaceHolder 的格式。它只能设置为 32 位 RGBA。位图只能在前面配置 Alpha 管道(我认为这是正确的术语?),而 PNG 在后面包含 Alpha 管道。所以我只是将我所有的位图保存为 PNG,它解决了我的问题!