【发布时间】:2011-11-24 19:21:30
【问题描述】:
我的 mainActivity 中有四个绘制函数。这是圆函数。
private class MyViewCircle extends View {
public MyViewCircle(Context context) {
super(context);
attrCircle = new ArrayList<featureCircle>();
random = new Random();
attrCircle.add(new featureCircle(Color.BLACK, 80, 70, 70));
attrCircle.add(new featureCircle(Color.BLUE, 20, 30, 80));
attrCircle.add(new featureCircle(Color.CYAN, 80, 90, 90));
// 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);
int randomPosition = random.nextInt(attrCircle.size());
featureCircle randomAttrCircle = attrCircle.get(randomPosition);
***if (evol)*** {
//combine all arraylist
} else {
paint.setColor(randomAttrCircle.color);
canvas.drawCircle(randomAttrCircle.x, randomAttrCircle.y,
randomAttrCircle.radius, paint);
}
}
}
这是三角函数 私有类 MyViewTri 扩展视图 {
public MyViewTri(Context context) {
super(context);
attrTri = new ArrayList<featureTri>();
random = new Random();
attrTri.add(new featureTri(Color.RED, 190, 210, 150, 230, 140, 270));
attrTri.add(new featureTri(Color.MAGENTA, 100, 45, 190, 230, 114,
167));
attrTri.add(new featureTri(Color.YELLOW, 222, 111, 123, 156, 289,
209));
// 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);
int randomPosition = random.nextInt(attrTri.size());
featureTri randomAttrTri = attrTri.get(randomPosition);
paint.setColor(randomAttrTri.color);
Path pathTri = new Path();
pathTri.moveTo(randomAttrTri.x1, randomAttrTri.y1);
pathTri.lineTo(randomAttrTri.x2, randomAttrTri.y2);
pathTri.lineTo(randomAttrTri.x3, randomAttrTri.y3);
pathTri.close();
canvas.drawPath(pathTri, paint);
}
}
我还有其他类的值,比如
public class featureTri {
int x1,y1,x2,y2,x3,y3;
int color;
public featureTri(int color, int x1, int y1, int x2, int y2, int x3, int y3){
this.color = color;
this.x1 = x1;
this.y2 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
}
}
我的目标是当“evol”变为 TRUE 时,所有的数组列表将组合在一起,所以我可以从它们中随机选择值。谁能告诉我该怎么做?
attrCircle.add(new featureCircle(Color.BLACK, 80, 70, 70));
attrCircle.add(new featureCircle(Color.BLUE, 20, 30, 80));
attrCircle.add(new featureCircle(Color.CYAN, 80, 90, 90));
attrTri.add(new featureTri(Color.RED, 190, 210, 150, 230, 140, 270));
attrTri.add(new featureTri(Color.MAGENTA, 100, 45, 190, 230, 114,
167));
attrTri.add(new featureTri(Color.YELLOW, 222, 111, 123, 156, 289,
209));
(我想将所有颜色组合到一个新列表中并将它们全部随机化。)
【问题讨论】: