spider🕷️

This commit is contained in:
ScorpioMiku
2018-09-03 16:32:22 +08:00
parent c5595d4d15
commit e50c80694f
6 changed files with 103 additions and 32 deletions

View File

@@ -55,8 +55,8 @@ dependencies {
implementation project(':todaystepcounterlib')
//打分ui
compile 'com.github.CB-ysx:CBRatingBar:3.0.1'
//蛛网
implementation 'me.panpf:spider-web-score-view:1.0.1'
// //蛛网
// implementation 'me.panpf:spider-web-score-view:1.0.1'
//折线
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
//searchview

View File

@@ -7,13 +7,11 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.ToxicBakery.viewpager.transforms.CubeOutTransformer;
import com.cb.ratingbar.CBRatingBar;
@@ -25,6 +23,15 @@ import com.example.ninefourone.nutritionmaster.ui.NoScrollViewPager;
import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
import com.example.ninefourone.nutritionmaster.utils.PermissionUtils;
import com.flyco.tablayout.SlidingTabLayout;
import com.github.mikephil.charting.charts.RadarChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.RadarData;
import com.github.mikephil.charting.data.RadarDataSet;
import com.github.mikephil.charting.data.RadarEntry;
import com.github.mikephil.charting.formatter.IndexAxisValueFormatter;
import com.github.siyamed.shapeimageview.CircularImageView;
import com.miguelcatalan.materialsearchview.MaterialSearchView;
import com.mxn.soul.flowingdrawer_core.ElasticDrawer;
@@ -34,11 +41,13 @@ import com.nightonke.boommenu.BoomButtons.OnBMClickListener;
import com.nightonke.boommenu.BoomMenuButton;
import com.orhanobut.logger.Logger;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import me.panpf.swsv.CircularLayout;
import me.panpf.swsv.SpiderWebScoreView;
public class MainActivity extends BaseActivity {
@@ -58,10 +67,10 @@ public class MainActivity extends BaseActivity {
CircularImageView toolbarUserAvatar;
@BindView(R.id.drawer_user_avatar)
CircularImageView drawerUserAvatar;
@BindView(R.id.spiderWeb_mainActivity)
SpiderWebScoreView spiderWebMainActivity;
@BindView(R.id.layout_mainActivity_circular)
CircularLayout layoutMainActivityCircular;
// @BindView(R.id.spiderWeb_mainActivity)
// SpiderWebScoreView spiderWebMainActivity;
// @BindView(R.id.layout_mainActivity_circular)
// CircularLayout layoutMainActivityCircular;
// @BindView(R.id.search_button)
// ImageView searchButton;
@BindView(R.id.search_view)
@@ -70,6 +79,8 @@ public class MainActivity extends BaseActivity {
Toolbar toolBar;
@BindView(R.id.boom_menu_button)
BoomMenuButton boomMenuButton;
@BindView(R.id.spider_view)
RadarChart spiderView;
@Override
@@ -170,14 +181,63 @@ public class MainActivity extends BaseActivity {
private void initSpiderView() {
float[] scores = {9.1f, 5.5f, 7.7f, 8.9f, 4.6f};
String[] flags = {"糖分", "淡水", "蛋白质", "维生素", "矿物质"};
spiderWebMainActivity.setScores(10f, scores);
layoutMainActivityCircular.removeAllViews();
for (String flag : flags) {
TextView scoreTextView = (TextView) LayoutInflater.from(getBaseContext()).inflate(R.layout.score,
layoutMainActivityCircular, false);
scoreTextView.setText(flag);
layoutMainActivityCircular.addView(scoreTextView);
List<RadarEntry> radarEntries = new ArrayList<>();
for (int i = 0; i < flags.length; i++) {
RadarEntry radarEntry = new RadarEntry(scores[i], flags[i]);
radarEntries.add(radarEntry);
}
Description description = new Description();
description.setText("");
spiderView.setDescription(description);
spiderView.setWebLineWidth(1.5f);
// 内部线条宽度,外面的环状线条
spiderView.setWebLineWidthInner(1.5f);
// 所有线条WebLine透明度
spiderView.setWebAlpha(300);
Legend legend = spiderView.getLegend();
legend.setEnabled(false);
XAxis xAxis = spiderView.getXAxis();
// X坐标值字体样式
// xAxis.setTypeface(tf);
// X坐标值字体大小
xAxis.setTextSize(8f);
ArrayList<String> xVals = new ArrayList<String>();
for (String flag : flags) {
xVals.add(flag);
}
xAxis.setValueFormatter(new IndexAxisValueFormatter(xVals));
YAxis yAxis = spiderView.getYAxis();
// Y坐标值字体样式
// yAxis.setTypeface(tf);
// Y坐标值字体大小
yAxis.setTextSize(0f);
// Y坐标值是否从0开始
yAxis.setStartAtZero(true);
// 是否显示y值在图表上
yAxis.setDrawLabels(false);
yAxis.setAxisLineWidth(2f);
RadarDataSet set = new RadarDataSet(radarEntries, "体质情况");
// set.setColor(R.color.bar_open);
set.setLineWidth(0.5f);
set.setDrawFilled(true);
// set.setFillColor(R.color.spider_view_color);
// set.resetColors();
RadarData data = new RadarData(set);
data.setDrawValues(false);
spiderView.setData(data);
spiderView.setTouchEnabled(false);
spiderView.invalidate();
}
/**

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 164 KiB

View File

@@ -18,7 +18,9 @@
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
@@ -300,23 +302,30 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_height="wrap_content"
android:clipChildren="false">
<me.panpf.swsv.SpiderWebScoreView
android:id="@+id/spiderWeb_mainActivity"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
app:scoreColor="@color/colorPrimary"
app:scoreStrokeColor="@color/colorPrimary" />
<!--<me.panpf.swsv.SpiderWebScoreView-->
<!--android:id="@+id/spiderWeb_mainActivity"-->
<!--android:layout_width="100dp"-->
<!--android:layout_height="100dp"-->
<!--android:layout_gravity="center"-->
<!--app:scoreColor="@color/colorPrimary"-->
<!--app:scoreStrokeColor="@color/colorPrimary" />-->
<me.panpf.swsv.CircularLayout
android:id="@+id/layout_mainActivity_circular"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:clipChildren="false" />
<!--<me.panpf.swsv.CircularLayout-->
<!--android:id="@+id/layout_mainActivity_circular"-->
<!--android:layout_width="100dp"-->
<!--android:layout_height="100dp"-->
<!--android:layout_gravity="center"-->
<!--android:clipChildren="false" />-->
<com.github.mikephil.charting.charts.RadarChart
android:id="@+id/spider_view"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_gravity="center">
</com.github.mikephil.charting.charts.RadarChart>
</FrameLayout>
<TextView

View File

@@ -15,6 +15,8 @@
<color name="color_bar_deeper">#52ec2f</color>
<color name="color_bar_self">#9ac3f9</color>
<color name="spider_view_color">#ff0000</color>