Android-приложение, использующее graphview для построения графика, сталкивается с проблемами при попытке сделать снимок с помощью Bitmap bitmap = graph.snapshot - PullRequest
0 голосов
/ 23 декабря 2019

В моем приложении для Android я пытаюсь использовать graphview для построения графика, и график выглядит нормально. Но я столкнулся с проблемами, когда пытался сделать снимок, используя Bitmap bitmap = graph.snapshot. Вот мой код:

import android.graphics.Bitmap;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;
    GraphView graph = (GraphView) findViewById(R.id.graph);
    LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[] {
            new DataPoint(0, 1),
            new DataPoint(1, 5),
            new DataPoint(2, 3),
            new DataPoint(3, 2),
            new DataPoint(4, 6)
    });
    graph.addSeries(series);
    // get the bitmap
    Bitmap bitmap = graph.takeSnapshot();

And the errors show up in logcat are :

E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной Процесс: com.smdhealth.graphview_test, PID: 9897 java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.smdhealth.graphview_test/com.smdhealth.graphview_test.MainActivity}: java.lang.IllegalArgumentException: ширина и высота должны быть> 0 в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2778) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java): 2856) на android.app.ActivityThread.-wrap11 (неизвестный источник: 0) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1589) на android.os.Handler.dispatchMessage (Handler.java:106)на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6494) на java.lang.reflect.Method.invoke (родной метод) на com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) Причина: java.lang.IllegalArgumentException: ширина и высота должны быть> 0 в android.graphics.Bitmap.createBitmap (Bitmap.java:1013) в android.graphics.Bitmap.createBitmap (Bitmap.java:980) в android.graphics.Bitmap.createBitmap (Bitmap. Java: 930) на android.graphics.Bitmap.createBitmap (Bitmap.java:891) на com.jjoe64.graphview.GraphView.takeSnapshot (GraphView.java:599) на com.smdhealth.graphview_test.MainActivity.onCreate (MainActivity.java): 37) на android.app.Activity.performCreate (Activity.java:7009) на android.app.Activity.performCreate (Activity.java:7000) на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1214) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2731) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2856) в android.app.ActivityThread.-wrap11 (неизвестный источник: 0) в android.app.ActivityThread $H.handleMessage (ActivityThread.java:1589) на android.os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java:164) наandroid.app.ActivityThread.main (ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) вcom.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

...