0
之前,我想使點擊矩形。我環顧四周,我創造了相當不錯的代碼:)繪製矩形點擊,我不知道怎麼PARAMS組的onDraw方法
創建我自己的矩形類的構造函數,然後我設置它的一些價值觀。 然而,的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);
}
}
我可以說,跑項目後,我只得到一個矩形。難怪每個矩形都有相同的位置。請幫忙。
結果應顯示可點擊矩形的象棋。
沒有,我想把那個長方形的水平,並添加矩形的另一行。它應該看起來像一個可點擊矩形的國際象棋.. – deadfish 2012-04-16 13:54:42
一個簡單的LinearLayout將無法正常工作。嘗試將您的矩形放置在水平佈局中,這應該放入垂直線性佈局中。 或你以一個相對佈局。 – alex 2012-04-16 14:02:36