我正在编写一个应用程序,它将创建一个图形并在SurfaceView上绘制它。最终图形需要能够实时更新,但是现在我希望SurfaceView可以水平滚动,以便用户可以看到所有数据。这可能吗?
答案 0 :(得分:2)
您需要将自定义视图作为separeate类放在水平滚动视图中。当您创建自定义图形视图的实例时,通过覆盖onMeasure方法,告诉它根据图形的宽度调整自身大小:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
this.setMeasuredDimension(graphWidth, graphHeight);
}
graphWidth = barLenghtInPixels * barCount + extraSpaceInPixels;
您可以使用自定义标记(例如<com.myApplication.GraphView...>
)将自定义标记放置在xml布局中,或使用myScrollView.addView(myCustomView)
并将其添加到HorizontalScrollView
,然后再调用setContentView(myLayout)
。< / p>
答案 1 :(得分:1)
将HorizontalScrollView元素放置在曲面视图中。查看HorizontalScrollView documentation
中的gatherTransparentRegion(区域区域)