Android: полоса прокрутки для запуска графика - PullRequest
2 голосов
/ 16 июня 2011

У меня есть собственное представление, которое рисует бегущий график - некоторая величина в зависимости от времени.Теперь я хочу реализовать для этого настраиваемую полосу прокрутки, чтобы я мог просматривать прошлые данные, находящиеся вне экрана.Данные доступны для меня.Мне просто нужен выбор% смещения пользователем.

Любая помощь / предложения по реализации были бы очень полезны.

Фрагмент кода из метода onDraw моего пользовательского представления

public voidonDraw (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;
        }
    }
}

1 Ответ

0 голосов
/ 16 июня 2011

Попробуйте поместить свой пользовательский элемент управления в HorizonatalScrollView (при условии, что вы хотите, чтобы он выполнял горизонтальную прокрутку), используйте ScrollView в противном случае), задав ширину вашего элемента управления "WRAP_CONTENT" иHoizontScrollView для "FILL_PARENT".Не видя код для своего пользовательского представления, трудно понять, нужно ли вам немного поработать с вычислением ширины, чтобы это работало.

...