我有一个自定义 View ,它绘制了一个运行图 - 一些幅度与时间的关系。现在我想为此实现一个自定义滚动条,以便我可以查看屏幕外的过去数据。数据对我可用。我只需要用户选择 %offset。
任何关于实现的帮助/建议都会很有帮助。
我的自定义 View 的 onDraw 方法中的代码 fragment
public void onDraw( Canvas Canvas ){
int totalpts = data.size();
scale = getWidth() / (float) maxpoints;
List<Data> display = new ArrayList<Data>();
int initial = 1;
if (totalpts > maxpoints) {
initial = totalpts - maxpoints;
display = data.subList(initial, data.size() - 1);
} else {
display = data;
}
int size = display.size();
Data start = null;
float x1 = 0, x2 = 0, x = 0;
if (size > 1) {
x1 = getWidth();
start = display.get(display.size() - 1);
for (int i = display.size() - 1; i >= 0; i--) {
Data stop = display.get(i);
x = x1;
x1 -= (stop.x * scale / 1000);
canvas.drawLine(x, start.Y, x1, stop.Y, paint1);
start = stop;
}
}
}
最佳答案
尝试将自定义控件放在 HorizonatalScrollView 中(假设你想让它水平滚动),使用 ScrollView否则),将控件的宽度设置为“WRAP_CONTENT”,将 HoizontalScrollView 设置为“FILL_PARENT”。如果没有看到自定义 View 的代码,就很难知道您是否需要对宽度计算进行一些修改才能使其正常工作。
关于Android:运行图的滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370047/