Пример двухмасштабного XY-графика

#androidplot

#androidplot

Вопрос:

Я пытаюсь увеличить и прокрутить DualScaleXYPlotExampleActivity.java предоставлено Android plot. Поэтому я добавил необходимый код для масштабирования и прокрутки в тот же пример кода. Но при попытке масштабирования я заметил, что масштабируется только 1 график, область графика отображает 2 графика, но масштабируется один график. Может кто-нибудь, пожалуйста, помочь мне с этой проблемой, как я могу увеличить оба графика.

Ответ №1:

В примере с двумя масштабами для получения эффекта используется небольшой взлом. Я имею в виду, что с предельным уважением, поскольку это довольно умный взлом. По сути, второй график накладывается поверх первого. Главное, чтобы убедиться, что все, что ваш код масштабирования / прокрутки делает с plot1, также выполняется с plot2. Если после того, как вы убедились, что это так, у вас все еще возникают проблемы, вам необходимо обновить свой вопрос с помощью кода для ваших процедур масштабирования / прокрутки.

Ответ №2:

 Thanks Nick, am able to zoom the Dual Scale example code, actually I foundout the problem i.e.

@Override
    public boolean onTouch(View arg0, MotionEvent event) {
         switch (event.getAction() amp; MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_DOWN: // Start gesture
                firstFinger = new PointF(event.getX(), event.getY());
       --------------------
       --------------------
Whenever "onTouch" is getting called, View-ID was not correct check below

com.example.plotexample.DualXYPlot{43b52138 V.ED.... ........ 0,0-1080,1701 #7f080002 app:id/myXYPlot_R}

Solution:-

Implementing the Touch Event Listener as shown below i.e.

dual_scale_xy_plot_example.xml:-

    <RelativeLayout 
               android:id="@ id/sectionGraph" 
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:layout_weight="1"
               android:layout_marginTop="0px"
               android:layout_marginBottom="0px"
               android:layout_marginLeft="0px"
               android:layout_marginRight="0px">

                    <com.androidplot.xy.XYPlot
                        android:id="@ id/mySimpleXYPlot_L"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        androidPlot.title="A Simple XY Plot"
                        androidPlot.graphWidget.gridLinePaint.color="#000000"/>
                    <com.androidplot.xy.XYPlot
                        android:id="@ id/mySimpleXYPlot_R"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        androidPlot.title="A Simple XY Plot"
                        androidPlot.graphWidget.gridLinePaint.color="#000000"/>

        </RelativeLayout>

DualScaleXYPlotExampleActivity.java:-

private RelativeLayout mRelativeLayout;
--------------
--------------

    @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.dual_scale_xy_plot_example);

            mRelativeLayout = (RelativeLayout)findViewById(R.id.sectionGraph);

            mRelativeLayout.setOnTouchListener(
                    new RelativeLayout.OnTouchListener() {
                        public boolean onTouch(View v, MotionEvent motion) {
                            System.out.println("Coming to onTouch");
                            myXYPlot_L.onTouch((View)myXYPlot_L,motion);
                            myXYPlot_R.onTouch((View)myXYPlot_R,motion);
                            return true;
                        }
                    }
               );
}

-------------
-------------

This solution is working fine for me.........