Java arraylist的质量更改值
我有一系列的圆圈,它们是用画布画的。一切都很好。但是我需要在程序中改变圆的X,Y坐标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
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);
}
}