Android: Лента за превъртане за течаща графика

Имам персонализиран изглед, който чертае текуща графика - някаква величина спрямо времето. Сега искам да внедря персонализирана лента за превъртане за това, така че да мога да преглеждам минали данни, които са извън екрана. Данните са ми достъпни. Просто имам нужда от избора на %offset от потребителя.

Всяка помощ/предложения относно внедряването биха били полезни.

Кодов фрагмент от метода onDraw на моя персонализиран изглед

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;
        }
    }
}

person Ramya K Sharma    schedule 16.06.2011    source източник


Отговори (1)


Опитайте да поставите своя персонализиран контрол в HorizonatalScrollView (ако приемем, че искате да превърта хоризонтално), използвайте ScrollView в противен случай), като зададете ширината на вашия контрол на „WRAP_CONTENT“ и HoizontalScrollView на „FILL_PARENT“. Без да виждате кода за вашия персонализиран изглед, е трудно да разберете дали може да се наложи да бърникате малко с изчислението на ширината, за да работи това.

person Mark Allison    schedule 16.06.2011
comment
Благодаря Марк. Но не мисля, че мога да добавя HorizontalScrollView, тъй като във всеки един момент моят метод за рисуване рисува само точки, които могат да се поберат в зададената му ширина. Добавих необходимия кодов фрагмент към въпроса си. Нещо друго, което мога да направя? или някакъв друг начин за прилагане на теглене? - person Ramya K Sharma; 17.06.2011
comment
Съжалявам, наистина не разбирам какво се опитвате да направите в такъв случай. - person Mark Allison; 17.06.2011