2011-07-21 41 views
1

グラフを作成してSurfaceViewに描画するアプリケーションを作成しています。最終的にグラフはライブで更新できる必要がありますが、今はSurfaceViewを水平にスクロールして、ユーザーがすべてのデータを見ることができるようにします。これは可能ですか?SurfaceView水平スクロール

+0

水平スクロールビュー – Rasel

答えて

2

カスタムビューを別のクラスとして水平スクロールビュー内に配置する必要があります。あなたは、カスタムタグなどを使用してXMLレイアウトであなたのCustomViewを配置することができます

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);  

    this.setMeasuredDimension(graphWidth, graphHeight); 
} 

graphWidth = barLenghtInPixels * barCount + extraSpaceInPixels; 

:カスタムグラフのinstaceを作成するとonMeasureメソッドをオーバーライドすることにより、あなたは、グラフの幅に応じた大きさ自体にそれを伝え見ますsetContentView(myLayout)に電話する前に<com.myApplication.GraphView...>またはmyScrollView.addView(myCustomView)を使用してHorizontalScrollViewに追加してください。

+0

これはまさに私が探していたものでした。ありがとう! – user650309

+0

私はカスタムビューを水平スクロールビューの中に置き、アプリケーションを実行しようとするとクラッシュしますが、これはnullポインタの例外が原因であることがわかります。理由は何ですか? GraphView graphView; Horizo​​ntalScrollView myScrollView = new Horizo​​ntalScrollView(this); public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); graphView =新しいGraphView(これ); myScrollView.addView(graphView); setContentView(myScrollView); } } – user650309

+0

いくつかのコードブロックをコメントとして設定して、どの部分がそれを引き起こしているのかを見つけることができます。コードを単純化してエラーを見つけることができます。あなたは何が起こっているかをもっと知るために、GraphViewのコードとあなたのアクティビティをあなたの質問に貼り付ける必要があります。 – Lumis

1

Horizo​​ntalScrollView要素をサーフェイスビュー内に配置します。 HorizontalScrollView documentationのgatherTransparentRegion(地域地域)を参照

+0

を表示できません。私のサーフェスを表示するには、xmlを使用するのではなくコードで拡張してください。 Horizo​​ntalScrollViewをその内部に配置するにはどうしたらいいですか? – user650309

+0

おそらくこれが役立つかもしれないhttp://www.mail-archive.com/[email protected]/msg45804.html – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz