Java arraylist的质量更改值

Java arraylist的质量更改值,java,android,parameters,arraylist,set,Java,Android,Parameters,Arraylist,Set,我有一系列的圆圈,它们是用画布画的。一切都很好。但是我需要在程序中改变圆的X,Y坐标 static ArrayList<Circle> mCircles; private static void createCircles() { if (mCircles == null) { mCircles = new ArrayList<Circle>(); } int rana = 66/(koeficient); mCirc

我有一系列的圆圈,它们是用画布画的。一切都很好。但是我需要在程序中改变圆的X,Y坐标

static ArrayList<Circle> mCircles;

private static void createCircles() {
    if (mCircles == null) { 
        mCircles = new ArrayList<Circle>();
    }

    int rana = 66/(koeficient);
    mCircles.add(new Circle(80, 200, rana));
}

public static void AddCircle() {
    int rana = 66/(koeficient);

    mCircles.add(new Circle(80, 200, rana));
}

private void Drawing(Canvas canvas) {
    for (Circle c : mCircles) {
        canvas.drawCircle(c.getCurrentX(), c.getCurrentY(), c.getRadius(),
                            mMalovani);
    }
}

public static Circle findCircleClosestToTouchEvent(float x, float y) {
    Circle c = mCircles.get(mCircles.size() - 1);

    return c;
}
}

公共课的形式扩展了活动{

protected float mStartX   = 0f;
protected float mStartY   = 0f;
public float mCurrentX = 30f;   
public float mCurrentY = 30f;   
protected float mActionDownX;       
protected float mActionDownY;       
protected float mActionMoveOffsetX; 
protected float mActionMoveOffsetY;



// x y coordinate of a move action

public Shape (float x, float y) {
    mStartX   = x;
    mStartY   = y;
    mCurrentX = x;
    mCurrentY = y;



}








public void setStartX(float x) { mStartX = x; }

public void setStartY(float y) { mStartY = y; }

public float getCurrentX() { return mCurrentX; }

public float getCurrentY() { return mCurrentY; }







public void setCurrentX(float x) { mCurrentX = x;

}

public void setCurrentY(float y) { mCurrentY = y; }

public void setActionMoveOffsetX(float x) { mActionMoveOffsetX = x; }

public void setActionMoveOffsetY(float y) { mActionMoveOffsetY = y; }

public float getActionMoveOffsetX() { return mActionMoveOffsetX; }

public float getActionMoveOffsetY() { return mActionMoveOffsetY; }

public void setActionDownX(float x) { mActionDownX = x; }

public void setActionDownY(float y) { mActionDownY = y; }

public float getActionDownX() { return mActionDownX; }

public float getActionDownY() { return mActionDownY; }





public void restoreStartPosition() {
    mCurrentX = mStartX;
    mCurrentY = mStartY;
}

}

假设您有与getter方法相反的
setCurrentX
setCurrentY
方法,只需在圆圈列表中循环

  private void changeCoordinates(List<Circle> circles, int x, int y){
       for(Circle c:circles){
          c.setCurrentX(x);
          c.setCurrentY(y);
       }
    }
private void changecordinates(列表圆,整数x,整数y){
用于(圆c:圆){
c、 setCurrentX(x);
c、 设定电流y(y);
}
}

SetCurrentX和setCurrentY是返回最后一个绘图圆的Touchevent坐标的方法。但我需要乘以2,arraylist的所有X,Y坐标。我希望我正确理解了你的建议。@JosefJosef是自己的班级还是第三方的?圆圈的邮政编码。
  private void changeCoordinates(List<Circle> circles, int x, int y){
       for(Circle c:circles){
          c.setCurrentX(x);
          c.setCurrentY(y);
       }
    }