0

我正在使用自定义视图和自定义视图双倍大小的绘图线

以下是我在 xml 中的自定义视图

     <HorizontalScrollView
    android:layout_width="780dp"
    android:layout_height="300dp"
    android:layout_x="20dp"
    android:layout_y="180dp">     
 <com.john.TestApp.ScrollLineView
    android:id="@+id/RectroGraphView"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" 
    >
  </com.john.TestApp.ScrollLineView> </HorizontalScrollView>

这是我的 ScrollLineView 视图类代码。如您所见,我的线是自定义视图的两倍多。但是当我运行时它甚至没有绘制任何线。

我希望每当我的线路尺寸过大时,自定义视图必须是可滚动的。

  public ScrollLineView(Context context, AttributeSet attrs) 
{
    super(context, attrs);

    pTestPaint.setColor(Color.RED);
    setHorizontalScrollBarEnabled(true);
    setWillNotDraw(false);

} 

@Override 
protected void onDraw(Canvas StoredPlotCanvas) 
{ 
     super.onDraw(StoredPlotCanvas);

     StoredPlotCanvas.drawLine(0, 150, 2500, 150, pTestPaint); 
     StoredPlotCanvas.drawLine(0, 200, 1000, 200, pTestPaint); 
}

有什么帮助吗?

4

1 回答 1

0

可以通过这种方式完成,但您需要onMeasure在 ScrollLineView 类中覆盖并实现自定义方法。然后,每当您绘制线条时,您都需要requestLayout()在方法中调用和调整视图大小onMeasure,以便可以滚动它。

在我看来,在 ScrollLineView 中实现自定义滚动会是更好的解决方案。您只需要调整当前绘制的偏移量。

于 2013-09-14T16:03:28.420 回答