如何在画布上以原始方式绘制更多矩形?

问题描述 投票:0回答:1

我正在做一个测试应用程序,以便在将来开发一个更复杂的应用程序,我问自己是否可以在画布上绘制更多矩形(可能是一个左边,一个中心和一个右边)。不使用任何ImageView,TextView或这些东西。这是我的代码:

public class MioCanvas extends View {

Paint paint;
Rect rect;

public MioCanvas(Context context) {
    super(context);
    paint = new Paint();
    rect = new Rect();
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    paint.setColor(Color.GRAY);
    paint.setStrokeWidth(3);
    canvas.drawRect(0, 1999999, canvas.getWidth() / 2, canvas.getHeight() / 2, paint);
}
}

这是活动:

public class MainActivity extends AppCompatActivity {

MioCanvas mioCanvas;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mioCanvas = new MioCanvas(this);
    mioCanvas.setBackgroundColor(Color.GREEN);
    setContentView(mioCanvas);
}
}
java android android-canvas
1个回答
1
投票

例如,要实现您想要的功能,可以创建一个名为MyRectangle的Object,在其中您将继续引用其宽度,高度,positionX,positionY,颜色参考等。

MioCanvas类中放置一个全局变量,例如:

List<MyRectangle> rectangleList;

在构造函数中初始化它,创建几个矩形并将它们添加到列表中。

最后遍历onDraw方法中的列表,以绘制矩形:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    for(MyRectangle rectangle : rectangleList){
        paint.setColor(rectangle.getColour());
        paint.setStrokeWidth(rectangle.getStroke());
        canvas.drawRect(rectangle.getPositionX(), rectangle.getPositionY(), rectangle.getWidth() / 2, rectangle.getHeight() / 2, paint);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.