SurfaceView горизонтальная прокрутка

1

Я пишу приложение, которое создаст граф и нарисует его на SurfaceView. В конечном итоге график должен обновляться в реальном времени, но на данный момент я хочу, чтобы SurfaceView прокручивался по горизонтали, чтобы пользователь мог видеть все данные. Это возможно?

  • 0
    вы не можете поставить на горизонтальный scrollView
Теги:
scroll
graph
surfaceview

2 ответа

2
Лучший ответ

Вам нужно разместить свой пользовательский вид в горизонтальном представлении прокрутки в виде разделяемого класса. Когда вы создаете экземпляр своего пользовательского графического представления, вы говорите ему, чтобы он сам определялся по ширине графика, переопределяя метод onMeasure:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {     
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);      

    this.setMeasuredDimension(graphWidth, graphHeight);
}

graphWidth = barLenghtInPixels * barCount + extraSpaceInPixels;

Вы можете поместить свой customView в макет xml с помощью специального тега, такого как <com.myApplication.GraphView...> или использовать myScrollView.addView(myCustomView) и добавить его в HorizontalScrollView, прежде чем вы вызове setContentView(myLayout).

  • 0
    Это было именно то, что я искал. Спасибо!
  • 0
    Когда я пытаюсь поместить свой пользовательский вид в горизонтальный вид прокрутки и запускаю приложение, в котором происходит сбой, adb говорит мне, что это происходит из-за исключения нулевого указателя. У тебя есть идеи почему? GraphView graphView; HorizontalScrollView myScrollView = новый HorizontalScrollView (это); public void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState); requestWindowFeature (Window.FEATURE_NO_TITLE); graphView = новый GraphView (это); myScrollView.addView (graphView); setContentView (myScrollView); }}
Показать ещё 2 комментария
1

Поместите элемент HorizontalScrollView внутри поверхности. Посмотрите на gatherTransparentRegion (Регион региона) в документации HorizontalScrollView

  • 0
    чтобы показать свой SurfaceView, я расширил его в коде, а не использовал XML. Как я мог бы поместить туда HorizontalScrollView?
  • 0
    Не уверен, что, возможно, это поможет mail-archive.com/[email protected]/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню