GraphView là một thư viện tuyệt vời để sử dụng, tôi cũng thấy nó dễ nhất. Bước đầu tiên trong việc thực hiện điều này là thêm một biến String vào lớp GraphViewData trong GraphView.java. Giống như vậy:
static public class GraphViewData {
public final double valueX;
public final double valueY;
public final String valueDate;
public GraphViewData(double valueX, double valueY,String valueDate) {
super();
this.valueX = valueX;
this.valueY = valueY;
this.valueDate = valueDate;
}
}
Khi bạn tạo đối tượng GraphViewData khi tạo GraphView Graph, bạn sẽ cần thêm dữ liệu ngày ở dạng chuỗi (cùng với X và Y).
Giả sử bạn có 80 điểm dữ liệu trong biểu đồ (chỉ số 0 - 79). Có một phương thức trong GraphView chịu trách nhiệm tạo và trả về các nhãn nằm ngang, tôi tin rằng nó được gọi là generateHorLabels. Thay vì chỉ trả về giá trị X (0-79), hãy sử dụng giá trị X để lấy String từ đối tượng GraphData.
Trong đoạn mã bạn có bây giờ, nó cần phải có sau đây trong một cho loop
labels[i] = formatLabel(min + ((max-min)*i/numLabels), true);
thay vì ở trên, bạn có thể làm một cái gì đó như thế này.
Double temp = Double.valueOf(formatLabel(min + ((max-min)*i/numLabels), true));
int rounded =(int)Math.round(temp);
labels[i] = values[rounded].valueDate;
Hy vọng điều này sẽ hữu ích!
Thnx cho câu trả lời của bạn .. Tôi sẽ thử điều này ngày hôm nay, và xem tôi có thể hoàn thành nó ngay hôm nay không. Tôi có thể sẽ chấp nhận câu trả lời khi tôi thực hiện xong – Luciano
, không có vấn đề gì, hy vọng bạn có được nó hoạt động. – wdziemia
Ye đã làm việc với rất nhiều công cụ tùy chỉnh, như cửa sổ bật lên khi nhấp vào một điểm và giao diện :) – Luciano