0

我有一个自定义视图: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);...
}

而且我想使用 layoutParams 规则在 RelativeLayout 中放置几个​​ ImageZoomView,但是我的所有视图都固​​定在位置 (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)视图的右侧......

请问有什么想法吗?谢谢。

4

1 回答 1

0

我怀疑您的变量索引可能保持在值 0 - 确保它正在递增。

于 2011-01-12T13:08:07.987 回答