ตัวอย่างนี้สาธิตวิธีสร้าง กราฟ/แผนภูมิ (Charts/Graphs) ใน Android โดยใช้ไลบรารี GraphView ซึ่งเป็นไลบรารียอดนิยม สง่ายต่อการใช้งาน และรองรับหลายประเภทของกราฟ
ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่
เปิด Android Studio ไปที่ File → New Project
ขั้นตอนที่ 2: เพิ่ม Dependency ใน build.gradle (Module: app)
dependencies {
implementation 'com.jjoe64:graphview:4.2.1'
// ...
}
คลิก Sync Now หลังเพิ่ม
ขั้นตอนที่ 3: Layout XML (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<com.jjoe64.graphview.GraphView
android:id="@+id/graph"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
ขั้นตอนที่ 4: MainActivity.java - สร้าง Line Graph
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GraphView graph = findViewById(R.id.graph);
// สร้างข้อมูล DataPoint
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);
// ปรับแต่งกราฟ (Optional)
series.setColor(Color.RED);
series.setDrawDataPoints(true);
series.setDataPointsRadius(10);
series.setThickness(8);
// ตั้งค่า Viewport
graph.getViewport().setScalable(true);
graph.getViewport().setScrollable(true);
}
}
ขั้นตอนที่ 5: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ประเภทกราฟที่ GraphView รองรับ:
- LineGraphSeries - กราฟเส้น (ตัวอย่างนี้)
- BarGraphSeries - กราฟแท่งแนวตั้ง
- PointsGraphSeries - กราฟจุด (Scatter Plot)
- Combo Series - รวมหลายประเภทในกราฟเดียว
ตัวอย่างกราฟแท่ง (Bar Graph)
BarGraphSeries<DataPoint> barSeries = new BarGraphSeries<>(new DataPoint[] {
new DataPoint(0, 2),
new DataPoint(1, 4),
new DataPoint(2, 3),
new DataPoint(3, 5)
});
barSeries.setColor(Color.BLUE);
barSeries.setSpacing(50); // ระยะห่างแท่ง
barSeries.setDrawValuesOnTop(true);
barSeries.setValuesOnTopColor(Color.BLACK);
graph.addSeries(barSeries);
ตัวอย่างกราฟจุด (Scatter Plot)
PointsGraphSeries<DataPoint> pointsSeries = new PointsGraphSeries<>(new DataPoint[] {
new DataPoint(1, 1),
new DataPoint(2, 3),
new DataPoint(3, 2),
new DataPoint(4, 5)
});
pointsSeries.setColor(Color.GREEN);
pointsSeries.setSize(15f);
pointsSeries.setShape(PointsGraphSeries.Shape.POINT); // หรือ RECTANGLE, TRIANGLE
graph.addSeries(pointsSeries);
การปรับแต่งเพิ่มเติม
// กราฟแนวนอน (Horizontal)
graph.getGridLabelRenderer().setHorizontalAxisTitle("Time (s)");
graph.getGridLabelRenderer().setVerticalAxisTitle("Value");
// แสดง Legend
series.setTitle("My Data");
graph.getLegendRenderer().setVisible(true);
graph.getLegendRenderer().setAlign(LegendRenderer.Align.TOP);
// Animation
graph.animate(); // หรือ series.animate()
การทดสอบ
รันแอปพลิเคชัน จะแสดง Line Graph พร้อมจุดข้อมูล
