gpt4 book ai didi

java - 使用 for 循环来加速定义变量 Java Android

转载 作者:行者123 更新时间:2023-12-02 15:41:45 25 4
gpt4 key购买 nike

我知道您不能使用 for 循环来创建具有数字模式名称的多个变量,但是有什么方法可以使用某种循环来简化以下代码行吗?否则,这是一个很长的文件,作用很少,我不喜欢这样!这是我的代码的缩短版本。

public DrawGrid(Context context, int[] binary) {...
sq00c = binary[0];
sq01c = binary[1];
sq02c = binary[2]; ...etc}

Rect sq00 = new Rect(); Paint sq00p = new Paint(); int sq00c;
Rect sq01 = new Rect(); Paint sq01p = new Paint(); int sq01c;
Rect sq02 = new Rect(); Paint sq02p = new Paint(); int sq02c; ...ect

protected void onDraw(Canvas canvas) {...
sq00.set(2*sqsize, line0, 3*sqsize, line0+sqsize); sq00p.setColor(sq00c); sq00p.setStyle(Paint.Style.FILL); canvas.drawRect(sq00, sq00p);
sq01.set(3*sqsize, line0, 4*sqsize, line0+sqsize); sq01p.setColor(sq01c); sq01p.setStyle(Paint.Style.FILL); canvas.drawRect(sq01, sq01p);
sq02.set(4*sqsize, line0, 5*sqsize, line0+sqsize); sq02p.setColor(sq02c); sq02p.setStyle(Paint.Style.FILL); canvas.drawRect(sq02, sq02p);
...etc}

上述三部分代码各出现 64 次。有什么办法可以用循环来简化它吗?谢谢

最佳答案

试试这个方法:

private int[] myInt;
private Rect[] myRect;
private Paint[] myPaint;

public DrawGrid(Context context, int[] binary) {
myInt = binary;
myRect = new Rect[myInt.length];
myPaint = new Paint[myInt.length];

for (int i = 0; i < myInt.length; i++) {
//Put Rect parameters here, you have to take advantage of the "i" variable
myRect[i] = new Rect();

myPaint[i] = new Paint();
myPaint[i].setColor(myInt[i]);
myPaint[i].setStyle(Paint.Style.FILL);
}
}

protected void onDraw(Canvas canvas) {
for (int i = 0; i < myRect.length; i++) { // < not >
canvas.drawRect(myRect[i], myPaint[i]);
}
}

关于java - 使用 for 循环来加速定义变量 Java Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706841/

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