Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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
Java 添加到画布时以蓝色显示的位图(android studio)_Java_Android_Android Studio_Canvas_Android Bitmap - Fatal编程技术网

Java 添加到画布时以蓝色显示的位图(android studio)

Java 添加到画布时以蓝色显示的位图(android studio),java,android,android-studio,canvas,android-bitmap,Java,Android,Android Studio,Canvas,Android Bitmap,我一直在尝试向画布添加位图,但到目前为止,我发现我添加的每个图像都有蓝色色调。在将图像添加到画布时,我没有使用绘画。我的代码在下面,我已经附上了屏幕截图和原始图像 谢谢大家的帮助 while(isItOk) { if (!holder.getSurface().isValid()) { continue; } Canvas c = holder.lockCanvas();

我一直在尝试向画布添加位图,但到目前为止,我发现我添加的每个图像都有蓝色色调。在将图像添加到画布时,我没有使用绘画。我的代码在下面,我已经附上了屏幕截图和原始图像

谢谢大家的帮助

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设备上的蓝色图像:

原始图像:


这条帖子看起来好像我只是在自言自语,但我想我会发布我的发现,以防其他人遇到这个问题。问题是SurfaceHolder的格式。它只能设置为32位RGBA。位图只能在前面配置Alpha管道(我认为这是正确的术语?),而PNG的后面包含Alpha管道。所以我把我所有的位图都保存为PNG,它解决了我的问题

嗨,你的第二张图片:是一张白色的空白图片。“应该是那样的吗?”KeithOYS不,不是。我想我已经解决了,谢谢。太好了,我刚刚编辑了你的问题以显示你的新图像。所以我想我已经缩小了问题的范围,SurfaceHolder格式设置为RGBA_8888,位图设置为ARGB_8888格式。奇怪的是,没有办法将位图设置为RGBA,也没有办法将SurfaceHolder设置为ARGB。