我正在尝试实现由某些数据创建的自定义视图 - 特别是我试图通过自定义视图创建收入预测图。
我这样做的方法是有 10 个数据点,并在每个数据点之间画线。(然后还绘制 X 和 Y 轴线)。
我正在考虑创建一个封装了 10 个坐标的视图,并在 onDraw() 中通过画布绘制它们。像这样:
class RevView extends View {
private List<Point> mPoints;
public void configurePoints(float[] revenues) {
// convert revenues to points on the graph.
}
// ... constructor... etc.
protected void onDraw(Canvas canvas) {
// use canvas.drawLine to draw line between the points
}
}
但为了做到这一点,我想我需要视图的宽度/高度,直到onDraw
.
这是正确的方法吗?或者我什至应该将Points
列表传递给视图?或者有什么更好的方法来构建它?
您应该覆盖onMeasure()
将在之前调用的方法onDraw()
。
https://developer.android.com/reference/android/view/View.html#onMeasure(int,%20int)
测量视图及其内容以确定测量的宽度和测量的高度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句