如何在视图类中创建1到100范围内的数字数组 [英] how to create array of numbers in range 1 to 100 in view class
问题描述
每个人,请帮助我!
我想在形状中显示数字数组.
I want to show an array of numbers in a shape.
我做什么
1)我在View类中用画布绘制了一个形状.
1) I draw a shape with canvas in View class.
2)我创建了一个随机数.
2) I create a single random number.
3)我搜索了很多&找出应该使用Drawtext来显示文本或数字.
3) I've searched a lot & find out that should use Drawtext to show a text or number.
4)我已经阅读了Random,Drawtext等文档.
4) I've read the documentation of Random, Drawtext, etc.
5)我尝试过循环,但在画布类&之外无法正常工作在内部,也将无限重复该单个数字.
5) I've tried for loop but it didn't work outside of canvas class & inside, also will repeat that single number infinite times.
我的问题
我不知道如何将该数字放入数组&如何在视图类中显示带有drawtext的数组.
I don't know how to put that number in an array & how to show array with drawtext in view class.
此刻,我只能显示一个随机数,但是想要显示一个随机数数组.
at the moment, I can show only one random number, but a want to show an array of random numbers.
我是Android和Android上的新手.我的英语不太好. 如果有人可以帮助我,我将非常感激.
I'm very new in Android & my English is not so good. I'll be very grateful if anybody can Help me through this.
谢谢.
这是我用来创建单个随机数的代码的一部分(这是在类,构造函数和onDraw方法之外的):
Here's the part of my code that I used for creating a single random number (this is outside of class, constructor & onDraw method) :
Random rand = new Random();
int number = rand.nextInt(100) + 1;
String mystring = String.valueOf(number);
&在onDraw方法中显示我在以下代码中使用的此数字:
& in onDraw method for showing this number i used below code :
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawText(mystring,130,480,black_paintbrushstroke);
}
推荐答案
请尝试使用ArrayList
来保存您的随机数据,例如:
Please try to use ArrayList
to hold your random data, like:
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)一样,您需要添加一些垂直偏移量才能在下面的位置绘制新值.
Looks like you are drawing all your items into the same postion (x,y), you need to add some vertical offset to draw new value bellow previous one.
如果要将所有数字绘制为逗号分隔的字符串,则需要使用StringBuilder将数组转换为String:
If you want to draw all you numbers as comma-separted string, you need to convert your array into String using StringBuilder:
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);
这篇关于如何在视图类中创建1到100范围内的数字数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!