0

カスタム ビューを使用しており、カスタム ビューの 2 倍のサイズの線をプロットしています

以下は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 ビュー クラス コードです。ご覧のとおり、私の行はカスタム ビューの 2 倍以上のサイズです。しかし、私が実行しているときは、線をプロットしていません。

行のサイズがなくなるたびに、カスタム ビューをスクロール可能にする必要があります。

  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 に答える