gpt4 book ai didi

Android 矩形不工作

转载 作者:太空狗 更新时间:2023-10-29 16:23:11 26 4
gpt4 key购买 nike

我这两天一直在尝试编写一个简单的代码。我已经尝试了所有更改,但似乎都没有用。我正在尝试绘制具有不同颜色的垂直矩形。在第一个中,我只使用一个 Rect 变量并移动坐标。这是代码的相关部分。

 Rect myRect1=new Rect();
Random colorMe=new Random();
for(int j=0;j<5;j++){
myRect1.set(myCanvas.getWidth()/5*j, 0, myCanvas.getWidth()/5*j, myCanvas.getHeight());
paint.setColor(Color.rgb(colorMe.nextInt(255), colorMe.nextInt(255), colorMe.nextInt(255)));
myCanvas.drawRect(myRect1, paint);
}

我尝试的其他改变是通过一个数组。这是代码。

 Rect[] myRect=new Rect[5];
Random colorMe=new Random();
for(int j=0;j<5;j++){
myRect[j].set(myCanvas.getWidth()/5*j, 0, myCanvas.getWidth()/5*j, myCanvas.getHeight());
paint.setColor(Color.rgb(colorMe.nextInt(255), colorMe.nextInt(255), colorMe.nextInt(255)));
myCanvas.drawRect(myRect[j], paint);
}

有人可以帮我看看到底是什么问题吗?

最佳答案

第一个明显错误的地方(可能还有更多):

  • 矩形的最小 x 坐标是 myCanvas.getWidth()/5*j
  • 矩形的最大 x 坐标是 myCanvas.getWidth()/5*j

它们都是相同的值,所以你的矩形退化了。

题外话,但非常相关:每当您遇到这样的问题时,您都需要将其分解成更小的部分,直到您让它做一些事情。这将帮助您了解问题所在:

  1. 将所有子表达式(如颜色和生成的 x/y 值)提取到局部变量中,以便您可以在调试器中轻松检查它们
  2. 用预定义颜色 (COLOR.YELLOW) 替换随机颜色,以排除随机元素
  3. 用固定矩形(例如 (10,10) - (20,20))替换计算的矩形以排除坐标计算。
  4. 替换循环,排除循环。

关于Android 矩形不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9339327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com