java - arraylist 的质量变化值

标签 java android parameters arraylist set

我有圆的数组列表,它们是通过 Canvas 绘制的。一切都很好。但我需要在程序期间更改圆的所有 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;
}

公共(public)类 Circle 扩展 Shape {

final float mRadius;




public Circle(float x, float y, float r) {
    super(x, y);
    mRadius = r;
}

final float getRadius() {
    return mRadius;
}

}

公共(public)类 Shape 扩展 Activity {

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 方法相反的 setCurrentXsetCurrentY 方法,只需循环遍历圆圈列表即可。

  private void changeCoordinates(List<Circle> circles, int x, int y){
       for(Circle c:circles){
          c.setCurrentX(x);
          c.setCurrentY(y);
       }
    }

关于java - arraylist 的质量变化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460699/

相关文章:

java - WL 12.2.1 和 12.1.3 上的 Jersey 2.x Web 应用程序

java - 'configure' 和 'configureGlobal' 方法有什么区别?

java - 在另一个类的 JTextArea 中显示 ArrayList<Object>

java - 如何使用 HTML 标签为 strings.xml 文件中的字符串着色?

sql - 将比较运算符作为参数传递并直接在 SQL 存储过程中使用

Hadoop 计算所有拆分中所需的术语

java - 从 eclipse 远程调试

连续点击按钮后 Android 声音不播放

java - Eclipse 调试工具栏未激活

sql - 如何在另一个存储过程中使用值?