带有滚动视图的mpAndroidChart折线图性能

scrollView内有折线图,我的所有数据都是7点,滚动屏幕时有滞后, 我尝试使用nestedScrollview或禁用图表可访问性,但仍然有滞后。 当图表没有数据时,scrollView会非常平滑,但是当我在图表上设置数据时,滚动效果不好

这是设置程序类

public class Setupcharts {

    public LineData drawChart(Context context,ArrayList<Entry> entries,LineChart chart,String[] labels) {

            if (entries.size() > 0) {

                //customization dataSet Settings
                LineDataSet set = new LineDataSet(entries,"");
                set.setaxisDependency(YAxis.AxisDependency.LEFT);
                set.setDrawValues(true);
                set.setLineWidth(3f);
                set.setDrawCircles(true);
                set.setvalueTextSize(12f);
                set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
                set.setvalueTextColor(context.getResources().getcolor(R.color.progress));
                set.setColor(context.getResources().getcolor(R.color.progress));
                set.setCircleColor(context.getResources().getcolor(R.color.progress));

                //customization chart settings
                chart.setNoDataText("No data");
                chart.setTouchEnabled(false);
                chart.setDragEnabled(false);
                chart.setDrawGridBackground(false);
                chart.getDescription().setEnabled(false);
                chart.setPinchzoom(false);
                chart.setnestedScrollingEnabled(false);

                chart.getLegend().setEnabled(false);

                if (labels != null) {

                    //customization XAxis settings
                    XAxis x1 = chart.getXAxis();
                    x1.setTextColor(context.getResources().getcolor(R.color.progress));
                    x1.setDrawGridLines(false);
                    x1.setavoidFirstLastClipping(true);
                    x1.setPosition(XAxis.XAxisPosition.BOTTOM);
                    x1.setvalueFormatter(new IndexAxisValueFormatter(labels));
                    x1.setLabelCount(labels.length,true);

                }

                //customization YAxis settings
                YAxis y1 = chart.getaxisLeft();
                y1.setDrawLabels(false);
                y1.setTextColor(Color.BLACK);
                y1.setDrawGridLines(false);


                YAxis y2 = chart.getaxisRight();
                y2.setEnabled(false);

                LineData data = new LineData(set);

                //set custom font
                Typeface face = Typeface.createFromAsset(context.getassets(),"Shabnamn.ttf");
                data.setvalueTypeface(face);
                chart.getXAxis().setTypeface(face);

                return data;

            }else
                return null;
    }
}

和活动中

public void parseResponse(字符串响应){

ArrayList<Entry> entries = new ArrayList<>();

try {
    JSONObject object = new JSONObject(response);

    JSONArray array = object.getJSONArray("summary");

    labels = new String[array.length()];

    int j = 0;
    for (int i = array.length() - 1; i >= 0; i--) {

        JSONObject object1 = array.getJSONObject(i);

        int y = object1.getInt("burnt_calory");
        entries.add(new Entry(j,y));

        date = object1.getString("at_date");

        j++;
    }

} catch (JSONException e) {
    e.printStackTrace();
    Log.i("action response catch","error");

}

LineData data = new  
 Setupcharts().drawChart(actionactivity.this,entries,chart,labels);
chart.setData(data);
chart.animateY(55*35,Easing.Linear);

}

这是xml文件

  <?xml version="1.0" encoding="utf-8"?>
  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layoutDirection="ltr">


    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/constraintLayout"
        android:layout_marginBottom="16dp"
        android:background="@color/darkWhite"
        android:orientation="vertical"
        android:paddingStart="16dp"
        android:paddingEnd="16dp"
        android:paddingBottom="16dp">

        <Button
            android:id="@+id/btnactionDate"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/green_btn_border"
            android:drawableStart="@drawable/ic_arrow_drop_down_black_24dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:textColor="@color/colorWhite"
            android:textSize="12sp"
            app:layout_constraintWidth_percent="0.4"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/toolbar" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/txtactionTitle"
            android:text="@string/steps"
            android:textSize="14sp"
            app:layout_constraintTop_toTopOf="@id/btnactionDate"
            app:layout_constraintBottom_toBottomOf="@id/btnactionDate"
            app:layout_constraintEnd_toEndOf="parent"/>


        <ProgressBar
            android:id="@+id/progressbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginBottom="8dp"
            android:elevation="2dp"
            android:indeterminate="true"
            android:indeterminateTint="@color/progress"
            android:visibility="visible"
            app:layout_constraintBottom_toBottomOf="@id/powerSportCard"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />


        <androidx.cardview.widget.CardView
            android:id="@+id/car12"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="20dp"
            android:elevation="2dp"
            app:cardCornerRadius="8dp"
            app:layout_constraintTop_toBottomOf="@+id/btnactionDate">

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">


                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/txtProgress"
                    android:layout_marginStart="8dp"
                    android:layout_marginEnd="8dp"
                    android:gravity="center"
                    android:text="@string/daily_activity_amount"
                    android:textSize="12sp"
                    app:layout_constraintBottom_toBottomOf="@+id/arc_progress"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />

                <com.github.lzyzsd.circleprogress.ArcProgress
                    android:id="@+id/arc_progress"
                    android:layout_width="120dp"
                    android:layout_height="120dp"
                    android:layout_gravity="center"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="8dp"
                    app:arc_angle="230"
                    app:arc_bottom_text="60 دقیقه"
                    app:arc_bottom_text_size="20dp"
                    app:arc_finished_color="@color/progress"
                    app:arc_text_color="@color/BlackColor"
                    app:arc_text_size="30dp"
                    app:arc_unfinished_color="@color/Gray"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.cardview.widget.CardView>


        <androidx.cardview.widget.CardView
            android:id="@+id/card13"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="20dp"
            android:elevation="2dp"
            app:cardCornerRadius="8dp"
            app:layout_constraintTop_toBottomOf="@+id/car12">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/txtChartTitle"
                android:layout_gravity="end"
                android:layout_marginTop="4dp"
                android:layout_marginEnd="4dp"
                android:text="@string/cal_history"
                android:textSize="12sp" />

            <com.github.mikephil.charting.charts.LineChart
                android:id="@+id/lineChart2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginBottom="8dp" />

        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/cardView12"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="8dp"
            app:cardCornerRadius="8dp"
            app:layout_constraintEnd_toStartOf="@+id/cardView3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/card13">

            <TextView
                android:id="@+id/txtCalories"
                android:drawableTop="@drawable/ic_carbohydrates"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:drawablePadding="8dp"
                android:gravity="center" />

        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/cardView3"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            android:layout_weight="1"
            app:cardCornerRadius="8dp"
            app:layout_constraintEnd_toStartOf="@+id/cardView11"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/cardView12"
            app:layout_constraintTop_toTopOf="@+id/cardView12">

            <TextView
                android:id="@+id/txtKm"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawableTop="@drawable/ic_racing_car"
                android:layout_gravity="center"
                android:drawablePadding="8dp"
                android:gravity="center" />

        </androidx.cardview.widget.CardView>


        <androidx.cardview.widget.CardView
            android:id="@+id/cardView11"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_marginStart="8dp"
            android:layout_weight="1"
            app:cardCornerRadius="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/cardView3"
            app:layout_constraintTop_toTopOf="@+id/cardView12">


            <TextView
                android:id="@+id/txtTime"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawableTop="@drawable/ic_alarm_clock"
                android:layout_gravity="center"
                android:drawablePadding="8dp"
                android:gravity="center" />

        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/walkSportCard"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="16dp"
            android:layout_weight="1"
            app:cardCornerRadius="8dp"
            app:layout_constraintEnd_toStartOf="@+id/powerSportCard"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/cardView12">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="@string/Types_of_running"
                android:textSize="12sp"
                android:drawableTop="@drawable/ic_climb"
                android:layout_gravity="center"
                android:drawablePadding="10dp"
                android:gravity="center"
                android:paddingBottom="20dp"
                android:paddingTop="20dp"/>

        </androidx.cardview.widget.CardView>


        <androidx.cardview.widget.CardView
            android:id="@+id/powerSportCard"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            app:cardCornerRadius="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/walkSportCard"
            app:layout_constraintTop_toTopOf="@+id/walkSportCard">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="@string/Powerful_exercises"
                android:textSize="12sp"
                android:drawableTop="@drawable/ic_weight"
                android:layout_gravity="center"
                android:drawablePadding="10dp"
                android:gravity="center"
                android:paddingBottom="20dp"
                android:paddingTop="20dp"/>

        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/dailyCard"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="24dp"
            android:layout_weight="1"
            app:cardCornerRadius="8dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/competitionSportCard"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/walkSportCard">


                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="@string/daily_activity"
                    android:textSize="12sp"
                    android:drawableTop="@drawable/ic_bathtub"
                    android:layout_gravity="center"
                    android:drawablePadding="10dp"
                    android:gravity="center"
                    android:paddingBottom="20dp"
                    android:paddingTop="20dp"
                    />

        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/competitionSportCard"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            app:cardCornerRadius="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/dailyCard"
            app:layout_constraintTop_toTopOf="@+id/dailyCard">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="@string/Competitive_sports"
                android:textSize="12sp"
                android:drawableTop="@drawable/ic_podium"
                android:layout_gravity="center"
                android:drawablePadding="10dp"
                android:gravity="center"
                android:paddingBottom="20dp"
                android:paddingTop="20dp"/>

        </androidx.cardview.widget.CardView>

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/darkWhite"
            android:elevation="0dp"
            app:layout_constraintTop_toTopOf="parent"
            app:popuptheme="@style/Apptheme.PopupOverlay">

        </androidx.appcompat.widget.Toolbar>

        <FrameLayout
            android:id="@+id/sportFrame"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:elevation="2dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />


    </androidx.constraintlayout.widget.ConstraintLayout>
  </ScrollView>
aaa925168 回答:带有滚动视图的mpAndroidChart折线图性能

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3009213.html

大家都在问