Android: أنا أستخدم مكتبة AchartEngine للرسوم البيانية ، ولكن غير قادر على دمج عرض الرسم البياني لـ AchartEngine مع Android XML؟

StackOverflow https://stackoverflow.com/questions/4062161

  •  27-09-2019
  •  | 
  •  

سؤال

يتطلب طلبي مكتبة الرسم البياني وأنا أستخدم مكتبة AchartEngine Graph. يتطلب تطبيقي الرسم البياني أن يكون 50 ٪ فقط من الشاشة ويتم استخدام جزء آخر لعرض بعض المعلومات الأخرى.

هل من الممكن أن يكون لديك ملف موارد XML لواجهة برمجة تطبيقات AchartEngine وكيفية القيام بذلك؟

حاولت العثور على مثال لكنني لم أجده. هل هو مدعوم أم لا؟

هل كانت مفيدة؟

المحلول

هذا هو الأسئلة الشائعة ل achartEngine. تطبيق AchartEngine التجريبي متاح للتنزيل هنا: AchartEngine Demo

في رمز المصدر التجريبي ، يمكنك رؤية مثال على كيفية تضمين مخطط في عرض موجود.

في الأساس ، في ملف .xml واصف النشاط ، قمنا بتعريف ما يلي بأنه عنصر نائب للمخطط. بالطبع ، تتجه مكونات واجهة المستخدم الأخرى مع هذا التصميم:

chartdemo/layout/xy_chart.xml بالقرب من السطر 27

<LinearLayout
    android:id="@+id/chart"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal" />

نحدد متغيرًا محليًا:

chartdemo/src/org.achartengine.chartdemo.demo.chart/xychartbuilder.java بالقرب من الخط 68

private GraphicalView mChartView;

نحن نستند إلى مثيله على طريقة onresume () للنشاط:

chartdemo/src/org.achartengine.chartdemo.demo.chart/xychartbuilder.java بالقرب من الخط 163

protected void onResume() {
  super.onResume();
  if (mChartView == null) {
    LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
    mChartView = ChartFactory.getLineChartView(this, mDataset,
mRenderer);
    layout.addView(mChartView, new LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    ...
  } else {
    mChartView.repaint();
  }
}

عند إضافة بيانات جديدة (عندما يضغط المستخدم على زر "إضافة" في حالتنا ، تتم إضافة نقطة جديدة في السلسلة الحالية و:

chartdemo/src/org.achartengine.chartdemo.demo.chart/xychartbuilder.java بالقرب من الخط 147

if (mChartView != null) {
  mChartView.repaint();
}

نصائح أخرى

هناك مجموعتان من واجهات برمجة التطبيقات في ChartFactory. على سبيل المثال. getLineChartView() و getLineChartIntent(). لذلك يتم استخدام السابق للحصول على طريقة عرض رسومية يمكن إضافتها إلى التصميم المخصص ويتم استخدامها لاحقًا للحصول على القصد. في مثال أعلاه استخدم دان getLineChartView() API الذي يعيد أ GraphicalView.

يمكنك كتابة XML مثل هذا ...

<LinearLayout 
android:layout_below="@+id/btn"
android:id="@+id/chart" android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_weight="1">

</LinearLayout>

ومقتطف رمز Java هو

   protected void onResume() {
      super.onResume();
      if (mChartView == null) {
        LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
        mChartView = ChartFactory.getBarChartView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
        layout.addView(mChartView);


      } else {
        mChartView.repaint();
      }
    }

لذا ، إليك مكان كافٍ للعثور على كل شيء AchartEngine. الذي يتضمن رابط للتنزيل ،

  1. AchartEngine-1.1.0-Demo-Source.zip The AchartEngine 1.1.0 Demo Project Source Code. 15 مايو 15 168 كيلو بايت 8149
  2. Achartengine-1.1.0-javadocs.zip وثائق AchartEngine 1.1.0 Javadoc. 15 مايو 15 374 كيلو بايت 3610
  3. AchartEngine-1.1.0.Jar The AchartEngine 1.1.0 Binary Build Library. 15 مايو 15 117 كيلو بايت 5264

وهي الأحدث في الوقت الحالي (أثناء نشر هذه الإجابة). الآن اتبع هذه الخطوات السهلة لإضافة ملف مخطط جديد:

  • تنزيل وإضافة Achartengine -1.1.0.Jar إلى قسم LIB لمشروعك
  • الآن انقر بزر الماوس الأيمن على ملف وأضفه إلى إنشاء مسار ، كما هو الحال في الصورة

    Add jar to your project

  • الآن كما هو محدد في الإجابات السابقة ، أضف التعليمات البرمجية التالية إلى فصلك:

    private GraphicalView mChartView;
    private XYMultipleSeriesDataset dataset;
    private XYMultipleSeriesRenderer renderer;
    private BarChart.Type type;
    
    
     protected void onResume() {
          super.onResume(); 
          if (mChartView == null) {
            LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
            /*getBarChartView(android.content.Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, BarChart.Type type)
              Creates a bar chart view.*/
            mChartView = ChartFactory.getBarChartView(this, dataset, renderer, type);//tView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
            layout.addView(mChartView);
          } else {
            mChartView.repaint();
          }
        }
    
    • للحصول على تفاصيل حول أي فئة من Achartenginapi ، قم بتنزيل Achartengine-1.1.0-javadocs.zip وافتح بالضغط في index.html

    • Achartengine-1.1.0-demo-source.zip سيكون مفيدًا أثناء تطوير مزيد من الأعماق حيث يمكنك مرجع جميع المخططات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top