让我们开门见山,我正在制作一个安卓游戏,我决定尝试使用更多的安卓方法,比如 Rect
和 Path
这样我就可以试验和了解他们是如何工作的。 (以前我只用位图来画图形)
当我制作游戏时,我注意到我的矩形有一些奇怪的颜色,所以我尝试了很多东西,我确保我的矩形被正确初始化,我还尝试简化我的代码以确保问题是在那里引起的.
出于调试目的,我的代码在屏幕的左上角绘制了一个白色方 block ,在右上角绘制了一个黑色方 block ,在底部绘制了一个灰色方 block ,这是代码:
Paint pGray, pWhite, pBlack;
public myClass()
{
paintGray = new Paint();
paintGray.setARGB(255, 125, 125, 125);
paintWhite = new Paint();
paintWhite.setARGB(255, 255, 255, 255);
paintBlack = new Paint();
paintBlack.setARGB(255, 0, 0, 0);
}
public void draw(Canvas canvas)
{
canvas.drawRect(0, screenHeight/2, screenWidth, screenHeight, paintGray);
canvas.drawRect(0, 0, screenWidth/2, screenHeight/2, paintWhite);
canvas.drawRect(screenWidth/2, 0, screenWidth, screenHeight/2, paintBlack);
}
(我不知道这是否重要,但它在另一个 Thread
上运行)
当我在手机上运行它并使用 Android Studio 保存屏幕截图时,屏幕截图如下所示:
这是他想要的结果,问题是我的手机没有正确显示图形,这是一张照片:
如您所见,灰色方 block 内部有两种颜色,一种较深,一种较浅。它发生在我拥有的两部手机上,我不知道它是什么,更奇怪的是保存屏幕截图并没有显示这个问题!
我还注意到颜色会根据白色方 block 发生变化,如果我将其变大或变小,灰色方 block 会在白色方 block 结束处改变其颜色。
我注意到的另一件事是灰色方 block 上的这些“脱色”线(有多个白框,出现多条线)在横向模式下是垂直的,但在纵向模式下它变成水平的。
我一直在用这个折磨自己很多时间,我已经注释掉了我的整个应用程序以尝试查看它发生的原因,如果我遗漏了什么或任何人知道什么请告诉我!
最佳答案
我认为这不是软件错误。我猜这就是显示器呈现颜色的方式。
关于Android奇怪的绘图 Canvas 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27107409/