Как я могу вычислить высоту и ширину прямоугольника, когда я масштабирую его в классе прямоугольника? - PullRequest
0 голосов
/ 24 апреля 2018

Как я могу вычислить высоту и ширину прямоугольника, когда я масштабирую его в классе прямоугольника?

Это мой классный прямоугольник, что я могу добавить в метод масштаба, чтобы изменить размеры?Спасибо.

Я немного изменил код: открытый класс Rectangle extends Graphic {

public Rectangle(float centerX, float centerY, float width, float height) {
    super(centerX, centerY, width, height);
}

@Override
protected void onDraw(Canvas canvas) {
    float left = getCenterX() - (getWidth()*getScaleX())/2 ;
    float top = getCenterY() - (getHeight()*getScaleY())/2 ;
    float right = getCenterX() + (getWidth()*getScaleX())/2 ;
    float bottom = getCenterY() + (getHeight()*getScaleY())/2 ;
        Paint paint = new Paint();
        paint.setColor(Color.GRAY);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(1.0f);
        canvas.drawRect(left, top, right, bottom, paint);
}

@Override
protected void onScale(float scaleFactorX, float scaleFactorY, float focusX, float focusY) {
    float newWidth = getWidth()*scaleFactorX;
    float newHeight = getHeight()*scaleFactorY;
    setWidth(newWidth);
    setHeight(newHeight);
}

@Override
protected void onDrag(float dx, float dy) {

}

@Override
protected void onSelectChange(boolean selected) {

    if (selected)
        getPaint().setColor(Color.GRAY);

}

@Override
protected void onClickEvent(float x, float y) {
    float left = getCenterX() - (getWidth()*getScaleX())/2 ;
    float top = getCenterY() - (getHeight()*getScaleY())/2 ;
    float right = getCenterX() + (getWidth()*getScaleX())/2 ;
    float bottom = getCenterY() + (getHeight()*getScaleY())/2 ;

    if(x > left && x < right && y > top && y < bottom)
        setSelected(true);
    else
        setSelected(false);
}

@Override
protected void onLongPressEvent(float x, float y) {

}

@Override
protected void onRotate(double angle) {

}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...