java - 添加到 Canvas 时显示蓝色的位图 (android studio)

标签 java android android-studio canvas android-bitmap

我一直在尝试将位图添加到 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 设备上的图像:

Img1

原始图片:

Img2

最佳答案

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

关于java - 添加到 Canvas 时显示蓝色的位图 (android studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40857055/

相关文章:

java - SimpleDateFormat 在解析 "YYYY-MM-dd HH:mm"时产生错误的日​​期时间

java - Google 自定义搜索 API 按图像搜索图像

android jetpack 项目给出 archlifecycleversion 构建错误

Java:如果在特定时间内未调用方法,则引发事件

java - 有没有办法在 JVM 中找到加载的类文件?

java - 如何使用 selenium webdriver-Java 验证页面中显示的错误消息

java - 在构建新的 Android 应用程序期间没有 project.properties 文件和 NullPointerException

android - 为什么衰落边缘很慢?

android-studio - android gradle插件版本栏为空

android-studio - 当我使用 camerax "1.0.0-alpha06"时,为什么 zoomRatio 会显示错误 Unresolved reference ?