哈尔滨网站建设企业怎么让百度收录网址
先看一下视频显示的效果:
QQ视频20220819164941
从视频效果来看,这个动态效果还是可以的,是引入别人写好的轮子,我们只需要在进行配置数据即可,接下来讲解如何制作。
首先引入第三方依赖库
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"tools:context=".MainActivity"><com.github.mikephil.charting.charts.BarChartandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:id="@+id/bar_chart"android:layout_marginBottom="8dp"/><com.github.mikephil.charting.charts.PieChartandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:id="@+id/pie_chart"android:layout_marginTop="8dp"/></LinearLayout>
目前还只是静态效果,要想实现动态效果还需要去MainActivity.java中去做相关的配置
MainActivity.java
package com.example.charttest;import androidx.appcompat.app.AppCompatActivity;import android.graphics.Color;
import android.os.Bundle;
import android.view.View;import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.utils.ColorTemplate;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {BarChart barChart;PieChart pieChart;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);barChart = findViewById(R.id.bar_chart);pieChart = findViewById(R.id.pie_chart);ArrayList<BarEntry> barEntries = new ArrayList<>();ArrayList<PieEntry> pieEntries = new ArrayList<>();for (int i = 0;i < 10;i++){float value = (float) (i*10.0);BarEntry barEntry = new BarEntry(i,value);PieEntry pieEntry = new PieEntry(i,value);barEntries.add(barEntry);pieEntries.add(pieEntry);}BarDataSet barDataSet = new BarDataSet(barEntries,"Employees");barDataSet.setColors(ColorTemplate.COLORFUL_COLORS);barDataSet.setDrawValues(false);barChart.setData(new BarData(barDataSet));barChart.animateY(5000);barChart.getDescription().setText("Employees Chart");barChart.getDescription().setTextColor(Color.BLUE);PieDataSet pieDataSet = new PieDataSet(pieEntries,"Student");pieDataSet.setColors(ColorTemplate.COLORFUL_COLORS);barDataSet.setDrawValues(false);pieChart.setData(new PieData(pieDataSet));pieChart.animateXY(5000,5000);pieChart.getDescription().setText("Student Chart");pieChart.getDescription().setTextColor(Color.BLUE);barChart.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {System.out.println(barChart.getBarData().toString());barChart.getHighlightByTouchPoint(100,100);System.out.println(barChart.getDescription().getText().toString());}});pieChart.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {System.out.println(pieChart.getDataSetIndexForIndex(View.generateViewId()));System.out.println(pieChart.getCenterTextRadiusPercent());System.out.println(pieChart.getRadius());}});}
}
这样就实现了视频中的效果,还是比较简单的。