package com.xxmassdeveloper.mpchartexample.realm; import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.text.style.RelativeSizeSpan; import android.text.style.StyleSpan; import android.view.WindowManager; import com.github.mikephil.charting.charts.PieChart; import com.github.mikephil.charting.data.PieData; import com.github.mikephil.charting.data.realm.implementation.RealmPieDataSet; import com.github.mikephil.charting.utils.ColorTemplate; import com.xxmassdeveloper.mpchartexample.R; import com.xxmassdeveloper.mpchartexample.custom.RealmDemoData; import io.realm.RealmResults; /** * Created by Philipp Jahoda on 21/10/15. */ public class RealmDatabaseActivityPie extends RealmBaseActivity { private PieChart mChart; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_piechart_noseekbar); mChart = (PieChart) findViewById(R.id.chart1); setup(mChart); mChart.setCenterText(generateCenterSpannableText()); } @Override protected void onResume() { super.onResume(); // setup realm // write some demo-data into the realm.io database writeToDBPie(); // add data to the chart setData(); } private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); RealmPieDataSet<RealmDemoData> set = new RealmPieDataSet<RealmDemoData>(result, "yValue", "label"); set.setColors(ColorTemplate.VORDIPLOM_COLORS); set.setLabel("Example market share"); set.setSliceSpace(2); // create a data object with the dataset list PieData data = new PieData(set); styleData(data); data.setValueTextColor(Color.WHITE); data.setValueTextSize(12f); // set data mChart.setData(data); mChart.animateY(1400); } private SpannableString generateCenterSpannableText() { SpannableString s = new SpannableString("Realm.io\nmobile database"); s.setSpan(new ForegroundColorSpan(Color.rgb(240, 115, 126)), 0, 8, 0); s.setSpan(new RelativeSizeSpan(2.2f), 0, 8, 0); s.setSpan(new StyleSpan(Typeface.ITALIC), 9, s.length(), 0); s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()), 9, s.length(), 0); s.setSpan(new RelativeSizeSpan(0.85f), 9, s.length(), 0); return s; } }