положение пользовательских видов в RelativeLayout - PullRequest
0 голосов
/ 12 января 2011

У меня есть пользовательский View: ImageZoomView.java, который имеет setImage и переопределяет onLayout и onDraw следующим образом:

public void setImage(Bitmap bitmap) {
    mBitmap = bitmap; ...
}


@Override
protected void onDraw(Canvas canvas) {
    if (mBitmap != null && mState != null) {
        ...
        canvas.drawBitmap(mBitmap, mRectSrc, mRectDst, mPaint);
    }
}

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);...
}

И я хочу расположить несколько ImageZoomViews в RelativeLayout, используя правила layoutParams,но все мои представления застряли в позиции (0,0), я не знаю почему.

       ImageZoomView mZoomView = new ImageZoomView(getApplicationContext());

 mZoomView.setImage(mBitmap);
 mZoomView.setId(index+1);

 RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.RelativeLayout01);
 RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(screenWidth/2, screenHeight/2);
 if(index > 0)
  lp.addRule(RelativeLayout.RIGHT_OF, index);

 relativeLayout.addView(mZoomView, lp);

Я пробовал точно такой же код с обычными ImageViews, он работает, и каждый вид позиционируется направо на (n-1) вид ...

Есть идеи, пожалуйста?Спасибо.

1 Ответ

0 голосов
/ 12 января 2011

Я подозреваю, что ваш индекс переменной может оставаться на значении 0 - убедитесь, что он увеличивается.

...