我正在尝试制作可点击的矩形。我环顾四周,创建了非常好的代码:)
我创建自己的矩形类的构造函数,然后设置它的一些值。然而,onDraw 方法看起来像创建和绘制矩形,但没有构造函数的新变量值。我做错了什么?
这是默认的 MyActivity 类:
ll = (LinearLayout)findViewById(R.id.linearlayout);
List<MiniRectangle> miniRectangleList = new ArrayList<MiniRectangle>();
for(int i=0;i<8;i++)
{
int numberRandom = r.nextInt(3);
MiniRectangle miniRectangle = new MiniRectangle(this);
miniRectangle.set_color(colors.get(numberRandom));
miniRectangle.set_size(50);
miniRectangle.set_id_color(numberRandom);
miniRectangle.set_number(i);
ll.addView(miniRectangle);
miniRectangleList.add(miniRectangle);
}
setContentView(ll);
这是我自己的矩形类
public class MiniRectangle extends View implements View.OnClickListener {
Context context;
int _size;
int _color;
int _id_color;
int _number;
public MiniRectangle(Context context) {
super(context);
this.context = context;
setOnClickListener(this);
}
@Override
public void onClick(View view) {
System.out.println(get_number());
Toast.makeText(context, get_number(), Toast.LENGTH_SHORT).show();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(get_color());
paint.setStrokeWidth(1);
int kleft = (get_number() % 8) * get_size();
int kright = kleft + get_size() - 2;
int ktop = 1 * get_size();
int kbottom = ktop + get_size() - 2;
canvas.drawRect(kleft, ktop, kright, kbottom, paint);
}
}
我可以说在运行项目后我只得到一个矩形。难怪每个矩形都有相同的位置。请帮忙。
结果应该显示可点击矩形的国际象棋。