我對Android非常陌生,並且在解決如何以編程方式在RelativeLayout中佈局視圖時遇到問題。我想要做的是在RelativeLayout容器的中心創建具有特定半徑(比如50px)的4個圓圈(子視圖),所以它看起來像在RelativeLayout的中心有一個虛構的正方形,每個頂點都是爲其中一個圈子的中心。簡單的Android界面 - RelativeLayout中的圈子(兒童視圖)
我能夠在視圖中繪製圓圈;這是很簡單:)
class CircleView extends View { ... protected void onDraw(Canvas canvas) { // draw circle on canvas } }
我無法弄清楚是如何佈局的意見。它似乎將他們繪製在彼此之上,即使我爲每個子視圖設置了LayoutParams和一個Id。
class Circles extends RelativeLayout { public Circles(Context c) { super(c); addChildViews(); } ... private void addChildViews() { final Context c = getContext(); final CircleView v0 = new CircleView(c); v0.setId(0); final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.LEFT_OF, 1); params.addRule(RelativeLayout.ABOVE, 2); v0.setLayoutParams(params); addView(v0); .... // and so on, with relative layout params for other 3 views } }
有人能讓我走上正確的軌道嗎?我也不知道我是否在繪圖週期中的正確時間調用addChildViews,並且這是導致它們彼此重疊的原因。非常感謝您的幫助。
優秀的東西;謝謝!按預期工作。並感謝視圖id設置爲零的提示。 – 2011-05-06 15:00:06