2011-11-24 65 views
0

我在mainActivity中有四个绘制函数。这是循环功能。android:如何结合不同类的多个数组列表?

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)); 

(我想所有的颜色组合到一个新的列表,并随机他们。)

回答

0

制作featureCircle和featureTri从一个新的类featureColour处理该int color;扩展 - 那么你可以添加圈子&三进入相同的ArrayList。

相关问题