package com.thankcreate.care.lab; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import org.achartengine.ChartFactory; import org.achartengine.GraphicalView; import org.achartengine.chart.BarChart.Type; import org.achartengine.model.CategorySeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.renderer.DefaultRenderer; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation; import com.thankcreate.care.App; import com.thankcreate.care.R; import com.thankcreate.care.R.layout; import com.thankcreate.care.R.menu; import com.thankcreate.care.tool.misc.MathTool; import com.thankcreate.care.tool.misc.MiscTool; import com.thankcreate.care.tool.misc.StringTool; import com.thankcreate.care.tool.ui.ToastHelper; import com.thankcreate.care.viewmodel.EntryType; import com.thankcreate.care.viewmodel.ItemViewModel; import com.umeng.analytics.MobclickAgent; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.graphics.Paint.Align; import android.view.Menu; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class LabCharactorAnalysisActivity extends LabShareActivity { private LinearLayout layout; private GraphicalView mChartView; private DefaultRenderer mRenderer = new DefaultRenderer(); private CategorySeries mSeries = new CategorySeries(""); private ImageView imageViewAvatar; private TextView textName; private TextView textAward; String herName; String avatar; int param1; int param2; int param3; int param4; int param5; String mostActiveTime; String award; int max; String[] categories = {"萝莉", "女王", "天然呆","吃货", "中二"}; int[] colors = { Color.argb(0xFF, 0xFF, 0x14, 0x21), Color.argb(0xFF, 0x9A, 0xFF, 0xF3), Color.argb(0xFF, 0xFF, 0x6D, 0x4B), Color.argb(0xFF, 0x90, 0xED, 0xB6), Color.argb(0xFF, 0xED, 0xFF, 0x4D)}; // int[] colors = { // Color.argb(0xFF, 0xa4, 0xfa, 0xf1), // Color.argb(0xFF, 0xf9, 0x39, 0x46), // Color.argb(0xFF, 0x3a, 0x65, 0x54), // Color.argb(0xFF, 0x7d, 0x03, 0x1c), // Color.argb(0xFF, 0x35, 0x00, 0x0a)}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_lab_charactor_analysis); initActionBar(); initControl(); analysis(); MobclickAgent.onEvent(this, "LabCharactorAnalysisActivity"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_lab_charactor_analysis, menu); return false; } @Override protected void initActionBar() { super.initActionBar(); actionBar.setTitle("性格分析"); } private void initControl() { layout = (LinearLayout) findViewById(R.id.chart); imageViewAvatar = (ImageView) findViewById(R.id.lab_avatar); textName = (TextView) findViewById(R.id.lab_name); textAward = (TextView) findViewById(R.id.lab_award); } private void analysis() { Boolean res = getData(); if(res) refreshChart(); } private boolean getData() { String myName= MiscTool.getMyName(); herName = MiscTool.getHerName(); if(StringTool.isNullOrEmpty(myName)) { ToastHelper.show("请先至少登陆一个帐户"); finish(); return false; } if(StringTool.isNullOrEmpty(herName)) { ToastHelper.show("请先至少关注一个帐户"); finish(); return false; } textName.setText(herName); App.getDrawableManager().fetchDrawableOnThread(MiscTool.getHerIconUrl(), imageViewAvatar); int herSig = StringTool.getSig(herName); param1 = (int)(herSig * 575 % 50 + 50); param2 = (int)(herSig * herSig % 50 + 50); param3 = (int)(herSig * 250 % 50 + 50); param4 = (int)(herSig * 337 % 50 + 50); param5 = (int)(herSig * 702 % 50 + 50); max = MathTool.getMaxValue(new int[]{param1, param2, param3, param4, param5}); award = MathTool.getMaxLable( new String[]{"极品萝莉", "盖世女王" , "激萌天然呆", "吃货去死去死" ,"中二少年"}, new int[]{param1, param2, param3, param4, param5}); textAward.setText(award); return true; } private void refreshChart() { mRenderer.setChartTitleTextSize(20); mRenderer.setLabelsTextSize(15); mRenderer.setMargins(new int[] { 5, 20, 5, 20 }); mRenderer.setZoomButtonsVisible(false); mRenderer.setStartAngle(90); mRenderer.setClickEnabled(false); mRenderer.setAntialiasing(false); mRenderer.setShowLegend(false); mRenderer.setExternalZoomEnabled(false); mSeries.add("萝莉", param1); mSeries.add("女王", param2); mSeries.add("天然呆", param3); mSeries.add("吃货", param4); mSeries.add("中二", param5); for(int i = 0; i < categories.length; i++) { SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer(); seriesRenderer.setColor(colors[i]); mRenderer.addSeriesRenderer(seriesRenderer); } mRenderer.setApplyBackgroundColor(true); mRenderer.setBackgroundColor(Color.TRANSPARENT); mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer); mChartView .setBackgroundResource(R.drawable.bitmap_bkg_tile_timeline); layout.setBackgroundResource(R.drawable.bitmap_bkg_tile_timeline); layout.addView(mChartView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } @Override protected String getShareTextSinaWeibo() { int pencentage = max * 100 / (param1 + param2 + param3 + param4); herName = MiscTool.getHerName(EntryType.SinaWeibo); String preContentString = String.format("据新一轮民调显示,@%s 的萝莉属性为%d,女王属性为%d,天然呆属性为%d,吃货属性为%d,伪娘属性为%d,获得了成就【%s】", herName, param1, param2, param3, param4, param5, award); return preContentString; } @Override protected String getShareTextRenren() { int pencentage = max * 100 / (param1 + param2 + param3 + param4); herName = MiscTool.getHerName(EntryType.Renren); String herID = MiscTool.getHerID(EntryType.Renren); String preContentString = String.format("据新一轮民调显示,@%s(%s) 的萝莉属性为%d,女王属性为%d,天然呆属性为%d,吃货属性为%d,伪娘属性为%d,获得了成就【%s】", herName,herID, param1, param2, param3, param4, param5, award); return preContentString; } @Override protected String getShareTextDouban() { int pencentage = max * 100 / (param1 + param2 + param3 + param4); herName = MiscTool.getHerName(EntryType.Douban); String preContentString = String.format("据新一轮民调显示,@%s 的萝莉属性为%d,女王属性为%d,天然呆属性为%d,吃货属性为%d,伪娘属性为%d,获得了成就【%s】", herName, param1, param2, param3, param4, param5, award); return preContentString; } }