MPAANDROIDCHART OPEN SOURT Chart Library PIE
سأقدم لكم مكتبة Icon Open Source MpaandroidChart. لا يمكنها فقط رسم المخططات الإحصائية المختلفة على أجهزة Android ، ولكن أيضًا سحب المخططات وتكبيرها ، وهي مرنة جدًا للاستخدام. يحتوي MpandroidChart أيضًا على أنواع مخططات شائعة: المخططات الخطية ، المخططات الدائرية ، المخططات الشريطية والمخططات المبعثرة.
mpandroidchartlibrary.jar الحزمة عنوان تنزيل:
https://github.com/philjay/mpandroidchart/releases
ما يلي ينفذ بشكل أساسي مخطط الفطيرة التالي:
1. قم بتنزيل أحدث حزمة mpandroidchartlibrary-2-0-8.jar من العنوان أعلاه ونسخه إلى libs للمشروع
2. حدد ملف XML
3. رمز منطق Java الرئيسي هو كما يلي.
ImportJava.Util.ArrayList ؛ importcom.github.mikephil.charting.charts.piechart ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.data.entry ؛ importcom.github.mikephil.charting.data.piedataset ؛ استيراد Android.support.v7.app.ActionBaractivity ؛ importandroid.graphics.color ؛ ImportAndroid.os.bundle ؛ importandroid.util.displaymetrics ؛ يمتد النشاط الأساسي للطبقة العامة {privatepiechartmchart ؛ Override محمية void onCreate (backdle SaveInstancestate) {super.oncreate (SaveInstancestate) ؛ setContentView (r.layout.activity_main) ؛ mChart = (piechart) findViewById (r.id.spread_pie_chart) ؛ piedatampiedata = getPiedata (4 ، 100) ؛ ShowChart (McHart ، Mpiedata) ؛ } private void showchart (piechartpiechart ، piedatapiedata) {piechart.setholecolortransparent (true) ؛ piechart.Setholeradius (60f) ؛ //radiuspiechart.setTransParentCircleradius(64f) ؛ // دائرة شفافة // piechart.setholeradius (0) // الدائرة الصلبة piechart.setDescription ("مخطط فطيرة اختبار") ؛ // mchart.setdrawyvalues (true) ؛ piechart.setdrawCentertext (صواب) ؛ // يمكن إضافة النص في منتصف مخطط الفطيرة piechart.setdrawholeenabled (true) ؛ piechart.setrotationangle (90) ؛ // زاوية الدوران الأولية // ترسم قيمة الوصف المقابلة في الشريحة // mchart.setdrawxvalues (true) ؛ // تمكين دوران الرسم البياني بواسطة touch piechart.setRotationEnabled (true) ؛ // يمكن تدويرها يدويًا // قيم النسبة المئوية عرض piechart.setusepercentvalues (true) ؛ // عرض النسب المئوية // mchart.setunit (") ؛ // عرض النسب المئوية // mchart.setunit (") ؛ // mchart.setdrawunitsinchart (true) ؛ // إضافة مستمع محدد // mchart.setonchartvalueselectedlistener (this) ؛ // mchart.settouchAnabled (false) ؛ // mchart.setonanimationListener (this) ؛ piechart.setCentertext ("الإيرادات الفصلية") ؛ // نص في منتصف مخطط الفطيرة // تعيين البيانات piechart.setData (piedata) ؛ // التراجع عن جميع الأحداث البارزة // piechart.highlightvalues (null) ؛ // piechart.invalidate () ؛ Legend mlegend = piechart.getlegend () ؛ // اضبط الرسم البياني المقياس mlegend.setPosition (LegendPosition.right_of_chart) ؛ // عرض على أقصى اليمين // mlegend.setform (LegendForm.line) ؛ // قم بتعيين شكل الرسم البياني للمقياس ، الافتراضي هو مربع mlegend.setxentryspace (7F) ؛ mlegend.setyentryspace (5f) ؛ piechart.animatexy (1000 ، 1000) ؛ // تعيين الرسوم المتحركة // mchart.spin (2000 ، 0 ، 360) ؛ } / ** * * @param count مقسومًا إلى عدة أجزاء * param range * / privatePiedatagetPiedata (عدد int ، نطاق تعويم) {ArrayList <string> xvalues = new ArrayList <String> () ؛ يتم استخدام // xvals لتمثيل المحتوى على كل فطيرة لـ (inti = 0 ؛ i <count ؛ i ++) {xvalues.add ("Quarterly" + (i + 1)) ؛ . // يتم استخدام yvals لتمثيل البيانات الفعلية التي تغلف كل كتلة فطيرة // بيانات مخطط فطيرة/** * قسّم مخطط فطيرة إلى أربعة أجزاء ، والنسبة العددية للأجزاء الأربعة هي 14: 14: 34: 38 * وبالتالي فإن النسبة المئوية التي يمثلها 14 ٪ */float quarterly1 = 14 ؛ Float Quarterly2 = 14 ؛ Float Quarterly3 = 34 ؛ Float Quarterly4 = 38 ؛ yvalues.add (إدخال جديد (Quarterly1 ، 0)) ؛ yvalues.add (إدخال جديد (Quarterly2 ، 1)) ؛ yvalues.add (إدخال جديد (Quarterly3 ، 2)) ؛ yvalues.add (إدخال جديد (Quarterly4 ، 3)) ؛ // مجموعة piedatasetpiedataset y-axis = piedataset الجديدة (yvalues ، "الإيرادات الفصلية 2014"/*عرض على الرسم البياني المقياس*/) ؛ piedataset.setslicespace (0f) ؛ // قم بتعيين المسافة بين مخططات الفطيرة ArrayList <integer> colors = new ArrayList <integer> () ؛ // PIE Chart Colors.Add (color.rgb (205 ، 205 ، 205)) ؛ color.add (color.rgb (114 ، 188 ، 223)) ؛ color.add (color.rgb (255 ، 123 ، 124)) ؛ color.add (color.rgb (57 ، 135 ، 200)) ؛ piedataset.setColors (الألوان) ؛ مقاييس DisplayMetrics = getResources (). getDisplayMetrics () ؛ floatpx = 5 * (metrics.densedpi / 160f) ؛ piedataset.setselectionShift (PX) ؛ // طول الحالة المحددة piedatapiedata = piedata جديدة (XValues ، piedataset) ؛ ReturnPiedata ؛ }} العروض كما يلي:
MPAANDROIDCHART OPEN SOURT Chart LINE CHART
1. انسخ حزمة mandroidchartlibrary-2-0-8.jar في libs للمشروع
2. حدد ملف XML
3. رمز منطق Java الرئيسي هو كما يلي.
packagecom.example.mpandroidlinechart ؛ ImportJava.Util.ArrayList ؛ importcom.github.mikephil.charting.charts.linechart ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.components.legendform ؛ importcom.github.mikephil.charting.data.entry ؛ importcom.github.mikephil.charting.data.linedataset ؛ importcom.github.mikephil.charting.data.linedataset ؛ استيراد Android.support.v7.app.ActionBaractivity ؛ importandroid.graphics.color ؛ ImportAndroid.os.bundle ؛ يمتد النشاط الرئيسي للطبقة العامة إلى نشاط الإجراءات {privatelinechartmlinechart ؛ // محرف خاص MTF ؛ Override محمية void onCreate (backdle SaveInstancestate) {super.oncreate (SaveInstancestate) ؛ setContentView (r.layout.activity_main) ؛ mlinechart = (linechart) findViewById (r.id.spread_line_chart) ؛ // mtf = typeface.createfromasset (getAssets () ، "opensans-bold.ttf") ؛ liningatamlinedata = getlinedata (36 ، 100) ؛ ShowChart (Mlinechart ، Mlinedata ، color.rgb (114 ، 188 ، 223)) ؛ } // قم بتعيين نمط العرض الخاص بـ showchart (Linechartlinechart ، liningalinedata ، int color) {linechart.setdrawborders (false) ؛ // أين يمكن إضافة حدود إلى مخطط السطر // لا يوجد وصف نص linechart.setDescription ("") ؛ // Data Description // إذا لم تكن هناك بيانات ، فسيتم عرض ذلك ، على غرار ListView emtpyviewlinechart.setnodatatextriate ("أنت بحاجة إلى توفير بيانات للمخطط.") ؛ // تمكين / تعطيل خلفية الشبكة linechart.setdrawgridbackground (false) ؛ // ما إذا كنت تريد عرض الجدول linechart.setGridbackgroundColor (color.hite & 0x70fffff) ؛ // لون الجدول ، هنا هو تعيين شفافية للون // تمكين التروس التي تعمل باللمس linechart.settouchAnabled (true) ؛ // تعيين ما إذا كان يمكن لمسه // تمكين التحجيم وسحب linechart.setDragenabled (true) ؛ // هل يمكنك سحب وإسقاط linechart.setscaleenabled (true) ؛ // هل يمكنك توسيع نطاق // إذا تم تعطيله ، فيمكن إجراء التحجيم على X- و Y- المحور بشكل منفصل linechart.setpinchzoom (false) ؛ // linechart.setbackgroundColor (color) ؛ // تعيين الخلفية // إضافة Data Linechart.setData (liningata) ؛ // قم بتعيين البيانات // احصل على الأسطورة (ممكن فقط بعد تعيين البيانات) Legend mlegend = linechart.getlegend () ؛ // قم بتعيين أيقونة المقياس ، والتي هي قيمة مجموعة y // تعديل الأسطورة ... // mlegend.setPosition (LegendPosition.left_of_chart) ؛ mlegend.setform (legendform.circle) ؛ // mlegend.setFormsize (6f) ؛ // font mlegend.settextcolor (color.white) ؛ // color // mlegend.settypeface (mtf) ؛ // font linechart.animatex (2500) ؛ // التنفيذ الفوري للرسوم المتحركة ، X-axis}/ *** إنشاء بيانات* param يشير إلى عدد نقاط الإحداثيات الموجودة في نطاق المخطط* param المستخدم لإنشاء أرقام عشوائية ضمن return*/ privateLinationAtaGetlinedata (int count ، float range) لـ (inti = 0 ؛ i <count ؛ i ++) {// البيانات المعروضة على المحور السيني ، بشكل افتراضي ، يتم استخدام العدد العددي لعرض XValues.add (""+i) ؛ } // y-axis data ArrayList <Repnd> yvalues = new ArrayList <ReptR> () ؛ لـ (inti = 0 ؛ i <count ؛ i ++) {float value = (float) (Math.Random () * range)+3 ؛ yvalues.add (إدخال جديد (القيمة ، i)) ؛ } // قم بإنشاء مجموعة بيانات وإعطائها نوعًا // y- المحور مجموعة بيانات liningAsetlinedatAset = new liningAset (yvalues ، "مخطط خط الاختبار" /*معروض على مخطط المقياس* /) ؛ // mlinedataset.setfillalpha (110) ؛ // mlinedataset.setFillColor (color.red) ؛ // استخدم المحور Y لتعيين المعلمة liningAset.setLineWidth (1.75F) ؛ // linewidth liningataset.setCureClyize (3F) ؛ // عرض حجم الدائرة liningataset.setColor (color.white) ؛ // عرض اللون liningataset.setCircleColor (color.white) ؛ // لون الدائرة liningataset.SethighlightColor (color.hite) ؛ . liningAsets.Add (liningAset) ؛ // أضف مجموعات البيانات // قم بإنشاء كائن بيانات مع مجموعات البيانات liningalininata = liningata جديد (xvalues ، liningasets) ؛ إرجاع الإرجاع ؛ }} العروض كما يلي:
MPAANDROIDCHART OPEN SORED Chart BAR
1. انسخ حزمة mandroidchartlibrary-2-0-8.jar في libs للمشروع
2. حدد ملف XML
3. رمز منطق Java الرئيسي هو كما يلي.
packagecom.jackie.mpandoidbarchart ؛ importjava.util.arraylist ؛ importcom.github.mikephil.charting.charts.barchart ؛ importcom.github.mikep hil.charting.charts.linechart ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.components.legend form ؛ importcom.github.mikephil.charting.components.xaxis ؛ importcom.github.mikephil.charting.components.xaxis.xaxisposition ؛ importcom.githu B.Mikephil.Charting.Data.Bardata ؛ earycom.github.mikephil.charting.data.bardataset ؛ isordcom.github.mikephil.charting.data.barentry ؛ استيراد Android.Support.v7.App.ActionBaractivity ؛ ImportAndroid.graphics.color ؛ importandroid.os.bundle ؛ يمتد النشاط الأساسي للطبقة العامة إلى {privateBarchartMbarchart ؛ privatebardatambardata {super.oncreate (SaveInstancestate) ؛ setContentView (r.layout.activity_main) ؛ mbarchart = (barchart) findViewById (r.id.spread_bar_chart) ؛ mbardata = getBardata (4 ، 100) ؛ showbarchart (mbarchart ، mbardata) ؛} private void showbarchart (Barchartbarchart ، Bardatabardata) {barchart.setdrawborders (false) ؛ /// حيث تضيف حدود على خط الرسم البياني barchart.setDescription ("") ؛ // وصف البيانات // إذا لم تكن هناك بيانات ، فسيتم عرض ذلك ، على غرار ListView المفروم من ListViewBarchArt.setNodatateStdescription ("أنت بحاجة إلى توفير بيانات للمخطط.") ؛ barchart.setdrawgridbackground (false) ؛ // ما إذا كنت تريد عرض الجدول barchart.setGridbackgroundColor (color.hite & 0x70fffff) ؛ // لون الجدول ، هنا هو تعيين شفافية لـ barchart.settouchAnabled (True) ؛ // تعيين ما إذا كان barchart.setDragenabled (true) ؛ // ما إذا كان barchart.setscaleenabled (صحيح) ؛ // ما إذا كان barchart.setpinchzoom (خطأ) ؛ // // barchart.setbackgroundColor () ؛ // تعيين خلفية barchart.setdrawbarshadow (true) ؛ barchart.setdata (Bardata) ؛ // تعيين أسطورة البيانات mlegend = barchart.getlegend () ؛ // SET SCALE ICON MLEGEND.SetForm (LegendForm.Circle) ؛ // style mlegend.setFormSize (6f) ؛ // font mlegend.settextColor (color.black) ؛ // color // x- axis setting // xaxisxaxis = barchart.getxaxis () ؛ // xaxis.setposition (xaxisposition.bottom) ؛ barchart.animatex (2500) ؛ . ArrayList <Barentry> () ؛ لـ (inti = 0 ؛ i <count ؛ i ++) {float value = (float) (math.random ()*number random داخل المدى/*100*/)+3 ؛ yvalues.add (barentry جديد (القيمة ، i)) ؛ } // مجموعة البيانات من y-axis bardatasetbardataset = new bardataset (yvalues ، "اختبار فطيرة") ؛ Bardataset.setColor (color.rgb (114 ، 188 ، 223)) ؛ ArrayList <Bardataset> bardatasets = new ArrayList <Bardataset> () ؛ Bardatasets.Add (Bardataset) ؛ // أضف مجموعات البيانات Bardatabardata = New Bardata (XValues ، Bardatasets) ؛ returnbardata ؛}} packagecom.jackie.mpandoidbarchart ؛ importjava.util.arraylist ؛ importcom.github.mikephil.charting.charts.barchart ؛ importcom.github.mikephil.chart Ing.Charts.Linechart ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.components.legend ؛ importcom.github.mikephil.charting.components. .legend.legendform ؛ importcom.github.mikephil.charting.components.xaxis ؛ importcom.github.mikephil.charting.components.xaxis.xaxisposition ؛ importco m.github.mikephil.charting.data.bardata ؛ importcom.github.mikephil.charting.data.bardataset ؛ importcom.github.mikephil.charting.data.barentry ؛ استيراد Android.Support.v7.App.ActionBaractivity ؛ ImportAndroid.graphics.color ؛ importandroid.os.bundle ؛ يمتد النشاط الأساسي للطبقة العامة إلى {privateBarchartMbarchart ؛ privatebardatambardata {super.oncreate (SaveInstancestate) ؛ setContentView (r.layout.activity_main) ؛ mbarchart = (barchart) findViewById (r.id.spread_bar_chart) ؛ mbardata = getBardata (4 ، 100) ؛ showbarchart (mbarchart ، mbardata) ؛} private void showbarchart (Barchartbarchart ، Bardatabardata) {barchart.setdrawborders (false) ؛ /// حيث تضيف حدود على خط الرسم البياني barchart.setDescription ("") ؛ // وصف البيانات // إذا لم تكن هناك بيانات ، فسيتم عرض ذلك ، على غرار ListView المفروم من ListViewBarchArt.setNodatateStdescription ("أنت بحاجة إلى توفير بيانات للمخطط.") ؛ barchart.setdrawgridbackground (false) ؛ // ما إذا كنت تريد عرض الجدول barchart.setGridbackgroundColor (color.hite & 0x70fffff) ؛ // لون الجدول ، هنا هو تعيين شفافية لـ barchart.settouchAnabled (True) ؛ // تعيين ما إذا كان barchart.setDragenabled (true) ؛ // ما إذا كان barchart.setscaleenabled (صحيح) ؛ // ما إذا كان barchart.setpinchzoom (خطأ) ؛ // // barchart.setbackgroundColor () ؛ // تعيين خلفية barchart.setdrawbarshadow (true) ؛ barchart.setdata (Bardata) ؛ // تعيين أسطورة البيانات mlegend = barchart.getlegend () ؛ // SET SCALE ICON MLEGEND.SetForm (LegendForm.Circle) ؛ // style mlegend.setFormSize (6f) ؛ // font mlegend.settextColor (color.black) ؛ // color // x- axis setting // xaxisxaxis = barchart.getxaxis () ؛ // xaxis.setposition (xaxisposition.bottom) ؛ barchart.animatex (2500) ؛ . ArrayList <Barentry> () ؛ لـ (inti = 0 ؛ i <count ؛ i ++) {float value = (float) (math.random ()*number random داخل المدى/*100*/)+3 ؛ yvalues.add (barentry جديد (القيمة ، i)) ؛ } // مجموعة البيانات من y-axis bardatasetbardataset = new bardataset (yvalues ، "اختبار فطيرة") ؛ Bardataset.setColor (color.rgb (114 ، 188 ، 223)) ؛ ArrayList <Bardataset> bardatasets = new ArrayList <Bardataset> () ؛ Bardatasets.Add (Bardataset) ؛ // أضف مجموعات البيانات Bardatabardata = New Bardata (xvalues ، bardatasets) ؛ returnbardata ؛}} العروض كما يلي:
ما سبق هو مقدمة لاستخدام مكتبة Mpaandroidchart Open Source Chart ، والتي ترتبط بمخطط الفطيرة ، مخطط الخط ومخطط الشريط. آمل أن يكون ذلك مفيدًا للجميع.