我已经定义了如下所示的自定义绘图:
private class SquareDrawableView extends View {
private ShapeDrawable mDrawable;
public SquareDrawableView(int x, int y, int size, int color, Context context) {
super(context);
mDrawable = new ShapeDrawable(new RectShape());
mDrawable.getPaint().setColor(color);
mDrawable.setBounds(x, y, x + size, y + size);
}
public void setColor(int color) {
mDrawable.getPaint().setColor(color);
}
protected void onDraw(Canvas canvas) {
mDrawable.draw(canvas);
}
}
我正在尝试在LinearLayout中平铺其中的一些。目前,当我运行此代码时,我只得到一个正方形出现在LinearLayout的“第一”位置。我在这里做错了什么?
top = (LinearLayout)findViewById(R.id.top);
SquareDrawableView[] topSquares = new SquareDrawableView[horizCount];
for(int i = 0; i < horizCount; ++i) {
topSquares[i] = new SquareDrawableView(i*SQUARE_SIZE,0,SQUARE_SIZE,BLUE,this);
top.addView(topSquares[i]);
}