এমপি অ্যান্ড্রয়েড চার্ট – একটি গুরুত্বপূর্ণ লাইব্রেরি

in #utopian-io7 years ago (edited)

আপনি কি শিখতে পারবেন?

“এমপি অ্যান্ড্রয়েড চার্ট” স্কেলিং, ড্র্যাগিং এবং অ্যানিমেশন সমৃদ্ধ একটি শক্তিশালী ওপেন সোর্স অ্যানড্রয়েড চার্ট ভিউ / গ্রাফ ভিউ লাইব্রেরি ।

  • আপনি শিখতে পারবেন কিভাবে "এমপি অ্যান্ড্রয়েড চার্ট" লাইব্রারি ব্যাবহার করতে পারবেন অ্যান্ড্রয়েড স্টুডিও এর প্রোজেক্ট এ ।
  • আপনি শিখতে পারবেন কিভাবে বার চার্ট বানাতে হয় এই লাইব্রারি ব্যাবহার করে অ্যান্ড্রয়েড স্টুডিও এর প্রোজেক্ট এ ।
  • আপনি শিখতে পারবেন কিভাবে একটা লাইব্রারি অ্যাড করতে হয় অ্যান্ড্রয়েড স্টুডিও এর প্রোজেক্ট এ ।

দরকারি সরঞ্জাম

  • অ্যান্ড্রয়েড স্টুডিও
  • "এমপি অ্যান্ড্রয়েড চার্ট" লাইব্রারির গিটহাব রিপসিটোরির লিঙ্ক
  • অ্যান্ড্রয়েড ভারচুইয়াল ডিভাইস (জেনিমশন )

কঠিনতা

  • মৌলিক এবং সহজ

টিউটোরিয়াল এর বিষয়বস্তু

আমাদের অ্যান্ড্রয়েড অ্যাপ্লিকেশান এ অনেক সময়ই অনেক ধরনের চার্ট , এনিমেশন প্রদর্শনের প্রয়োজন পড়ে । কিন্তু, এই সব জিনিষ , অ্যাপ এর মদ্ধে দেয়াটা অনেক ক্ষেত্রেই অনেক জটিল হয়ে পড়ে । তাই, অনেক ধরনের লাইব্রেরি রয়েছে যার মাধ্যমে আপনি সহজেই বিভিন্ন ধরনের চার্ট , গ্রাফ আপনার অ্যাপ এর মধ্যে উপস্থাপন করতে পারবেন ।

এই লাইব্রেরি ব্যাবহার করে আপনি নিম্নের কাজগুলো সহজেই করতে পারবেন :

  • ঘনাকার লাইন সমৃদ্ধ লাইন চার্ট
  • সাধারণ লাইন চার্ট
  • অনুভূমিক বার চার্ট
  • পাই চার্ট
  • লাইন চার্ট ও বার চার্ট একসাথে

> আসুন আমরা একটি উদাহরণ চেষ্টা করি যেখানে এই লাইব্রেরি ব্যাবহার করা হয়েছে :

build.graddle(app) ফাইলে নিম্নের কোড প্রবেশ করাই :

    maven { url “https://jitpack.io” }
}
dependencies {
    compile ‘com.github.PhilJay:MPAndroidChart:v2.0.9’
}

activity_main.xml ফাইলে নিম্নের কোড গুলো প্রবেশ করাই :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".MainActivity">
    
   <com.github.mikephil.charting.charts.BarChart
      android:id="@+id/chart"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
</RelativeLayout>

“আর অন্য কোন কোড থাকবে না এই ফাইল এর মধ্যে ”
আপনি উপরের লেআউটটিতে দেখতে পারেন, আমি com.github.mikephil.charting.charts
ব্যবহার করেছিএকটি অ্যান্ড্রয়েড বার চার্ট উদাহরণ তৈরি করতে ।

MainActivity.java ফাইলে নিম্নের কোড টা প্রবেশ করাই :

import android.graphics.Color;
import java.util.ArrayList;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import android.support.v7.app.ActionBarActivity;
import com.github.mikephil.charting.utils.ColorTemplate;


public class MainActivity extends ActionBarActivity {
    @Override

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BarChart chart = (BarChart) findViewById(R.id.chart);
        BarData data = new BarData(getXAxisValues(), getDataSet());
        chart.setData(data);
        chart.setDescription("আমার চার্ট ");
        chart.animateXY(2000, 2000);
        chart.invalidate();
    }
 private ArrayList<BarDataSet> getDataSet() {
        ArrayList<BarDataSet> dataSets = null;
ArrayList<BarEntry> valueSet1 = new ArrayList<>();
        BarEntry v1e1 = new BarEntry(100.000f, 0); // আম
        valueSet1.add(v1e1);
        BarEntry v1e2 = new BarEntry(80.000f, 1); // জাম
        valueSet1.add(v1e2);
        BarEntry v1e3 = new BarEntry(60.000f, 2); // কলা
        valueSet1.add(v1e3);
        BarEntry v1e4 = new BarEntry(40.000f, 3); // লিচু
        valueSet1.add(v1e4);
        BarEntry v1e5 = new BarEntry(90.000f, 4); //আতা
        valueSet1.add(v1e5);
        BarEntry v1e6 = new BarEntry(10.000f, 5); // পেয়ারা
        valueSet1.add(v1e6);
ArrayList<BarEntry> valueSet2 = new ArrayList<>();
        BarEntry v2e1 = new BarEntry(50.000f, 0); // আম
        valueSet2.add(v2e1);
        BarEntry v2e2 = new BarEntry(40.000f, 1); // জাম
        valueSet2.add(v2e2);
        BarEntry v2e3 = new BarEntry(30.000f, 2); // কলা
        valueSet2.add(v2e3);
        BarEntry v2e4 = new BarEntry(20.000f, 3); // লিচু
        valueSet2.add(v2e4);
        BarEntry v2e5 = new BarEntry(5.000f, 4); // আতা
        valueSet2.add(v2e5);
        BarEntry v2e6 = new BarEntry(80.000f, 5); // পেয়ারা
        valueSet2.add(v2e6);
BarDataSet barDataSet1 = new BarDataSet(valueSet1, "আমি খাই ");
        barDataSet1.setColor(Color.rgb(0, 155, 0));
        BarDataSet barDataSet2 = new BarDataSet(valueSet2, "আমার বন্ধু খায়");
        barDataSet2.setColors(ColorTemplate.LIBERTY_COLORS);
dataSets = new ArrayList<>();
        dataSets.add(barDataSet1);
        dataSets.add(barDataSet2);
        return dataSets;
    }
 private ArrayList<String> getXAxisValues() {
        ArrayList<String> xAxis = new ArrayList<>();
        xAxis.add("আম");
        xAxis.add("জাম");
        xAxis.add("কলা");
        xAxis.add("লিচু");
        xAxis.add("আতা");
        xAxis.add("পেয়ারা");
        return xAxis;
    }
}

“আর অন্য কোন কোড থাকবে না এই ফাইল এর মধ্যে ”

ফলাফল :

এই কোড গুলো অ্যান্ড্রয়েড স্টুডিও তে প্রোজেক্ট এর মধ্যে রান করালে আমরা নিম্নের ফলাফল
দেখতে পাবো :

ক্লাস এর মধ্যে প্রথমে একটি “বার চার্ট” ইনিশিয়ালাইজ করা হয়েছে । BarEntry ক্লাস দিয়ে বার চার্ট এর জন্য ডাটা তৈরি করা হয়েছে । BarEntry ক্লাস টা হল Entry ক্লাস এর একটি সাব-ক্লাস যা — সব ডাটা টাইপ এর জন্য বেস-ক্লাস এই লাইব্রেরিতে । এই BarEntry যোগ করা হয়েছে BarDataSet এ । chart.setData(data) মেথড ব্যাবহার করে সব মান সেট করা হয়েছে । chart.invalidate() মেথড ব্যাবহার করে মান গুলো বার চার্ট এ প্রদর্শন করা হয়েছে ।

Sort:  

wow! 1st time ever I see a post in Bengali.. Thank you for your post..

you welcome :)

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Thanks a lot!