如何在视图类中创建1到100范围内的数字数组

时间:2017-08-15 11:57:46

标签: android arrays canvas random drawtext

大家,请帮帮我!

我想在形状中显示一组数字。

我做了什么

1)我在View类中使用画布绘制一个形状。

2)我创建一个随机数。

3)我搜索了很多&找出应该使用Drawtext来显示文字或数字。

4)我已阅读Random,Drawtext等文档。

5)我已尝试过循环,但它没有在画布类和&amp ;;之外工作。在里面,也会重复那个单数无限次。

我的问题

我不知道如何将这个数字放入数组和数组中。如何在视图类中使用drawtext显示数组。

目前,我只能显示一个随机数,但想显示一组随机数。

我在Android& amp;我的英语不怎么好。 如果有人可以帮我解决这个问题,我将非常感激。

谢谢。

这是我用于创建单个随机数的代码部分(这是在类之外,构造函数和onDraw方法):

Random rand = new Random();
        int number = rand.nextInt(100) + 1;
        String mystring = String.valueOf(number);

&安培;在onDraw方法中显示我在代码下面使用的数字:

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
canvas.drawText(mystring,130,480,black_paintbrushstroke);
}

1 个答案:

答案 0 :(得分:0)

请尝试使用ArrayList保存随机数据,例如:

ArrayList<Integer> arrayList = new ArrayList<>(100); 
Random r = new Random(System.currentTimeMillis());
for(int i = 0; i < 100; i++) {
    arrayList.add(r.nextInt());
}

然后:

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    int yOffset = 10;
    int yStartPosition = 480;
    for (int i = 0; i < arrayList.size(); i++) {
        Integer integer = arrayList.get(i);
        canvas.drawText(String.valueOf(integer), 130, yStartPosition+(i*yOffset), black_paintbrushstroke);
    }
}

看起来您正在将所有项目绘制到相同的位置(x,y),您需要添加一些垂直偏移以在之前的位置绘制新值。

如果要将所有数字绘制为逗号分隔字符串,则需要使用StringBuilder将数组转换为String:

StringBuilder sb = new StringBuilder();
for(int i = 0; i < arrayList.size(); i++) {
    sb.append(arrayList.get(i)).append(",");
}

String myRandomNumbersArray = sb.toString();
sb.setLength(0);