2011-08-23 41 views
0

我想在画廊布局中显示一系列我自己的后代类视图,但当它显示时,画廊中的每个自定义视图都太大,即它们超过边界。放入画廊布局的自定义视图看起来太大

我已经设置了(以XML形式)每个视图的背景为"android:galleryItemBackground",并在我的派生View类中处理onMeasure()等,但由于某种原因,我的视图总是绘制得比背景大。

任何人都可以给我任何想法我需要在我的自定义视图类中实现什么?

感谢

的的onDraw()方法是在这里:当您从Adapter.getView()方法得到他们

protected void onDraw(Canvas canvas){ 


     /* Draw dial scale-arc */ 
     canvas.drawArc(scaleArcRect, scaleArcStart, scaleArcSweep, false, scaleArcPaint); 
     canvas.drawArc(innerScaleArcRect, scaleArcStart, scaleArcSweep, false, innerScaleArcPaint); 
     /* Draw the scale-arc ticks */ 
     drawScaleTicks(canvas); 

     /* Add text to dial */ 
     //canvas.drawText(scaleFactorText, sFactorTextRect.left, sFactorTextRect.bottom, scaleTextPaint); 

     drawScaleLegend(canvas); 

     /*Draw the pointer */ 
     canvas.save(); 
     canvas.rotate(drawAngle,this.viewWidth/2,this.viewHeight/2); 
     canvas.drawPath(pointerPath, pointerPaint); 
     canvas.restore(); 


     //canvas.drawText(scaleFactorText, sFactorTextRect.left,this.viewHeight/2, scaleTextPaint); 

     /* Update position feedback variables */ 
     actualAngle = drawAngle; 

     /* signal to compute thread that the position has been updated */ 
     isCommanded = false; 
    } 

回答

1

试着给你的自定义视图一个LayoutParams

+0

试过了。我在那里设置了一个大小,它确实调整了我的自定义视图,但仍然大于背景 – Kerry

+0

然后,LayoutParams上的数学算法错误,图库的背景大小与您预期的不同,或者绘制自定义视图时,它是绘图比你想象的要大。 – AedonEtLIRA

+0

是的,我倾向于同意你的观点,但我不明白它是如何发生的。我的自定义视图吸引了包含组的内容。我只是困惑,为什么这是发生 – Kerry