我有一个简单的程序来通过画布绘制简单的形状。
private class MyViewCircle extends View {
public MyViewCircle(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.RED);
canvas.drawCircle(89, 150, 30, paint);
}
}
如您所见,圆圈的属性为
(Color.RED);
(89, 150, 30, paint);
我想创建另一个包含很多其他功能(颜色和坐标)并随机选择它们。 那么,哪种方式更好,阵列或arraylist或其他什么?有人能给我一个如何做到这一点的例子吗?那么如何随机选择它们并将它们放入绘图功能?干杯!
答案 0 :(得分:0)
通常在Android上,我总是希望使用Array而不是使用ArrayList来提高性能。
要随机选择,您可以使用Math.random()
方法或util.Random
对象。使用其中任何一个都可以生成索引值,并使用该索引从数组中读取数据。
真的应该非常简单,所以除非你真的需要,否则我不会写任何代码。
答案 1 :(得分:0)
尝试创建一个简单的Java对象以包含所有属性,然后将它们添加到单个列表中并随机选择一个项目:
class MyAttributes {
int color;
int x, y;
int radius;
public MyAttributes(int color, int x, int y, int radius) {
this.color = color;
this.x = x;
this.y = y;
this.radius = radius;
}
}
在您的View类中:
private List<MyAttributes> mAttributes;
private Random mRandom;
public MyViewCircle(Context context) {
mRandom = new Random();
mAttributes = new ArrayList<MyAttributes>();
mAttributes.add(new MyAttributes(Color.RED, 80, 70, 199));
mAttributes.add(new MyAttributes(Color.BLUE, 50, 170, 88));
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAntiAlias(true);
int randomPosition = mRandom.nextInt(mAttributes.size());
MyAttributes randomAttr = mAttributes.get(randomPosition);
paint.setColor(randomAttr.color);
canvas.drawCircle(randomAttr.x, randomAttr.y, randomAttr.radius, paint);
}