package com.yeetou.xinyongkaguanjia.ui;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.achartengine.GraphicalView;
import com.yeetou.xinyongkaguanjia.R;
import com.yeetou.xinyongkaguanjia.component.MySpinnerButton;
import com.yeetou.xinyongkaguanjia.component.MySpinnerButton.MyListItemOnClickListener;
import com.yeetou.xinyongkaguanjia.constants.AppConstant;
import com.yeetou.xinyongkaguanjia.db.service.DbStreamService;
import com.yeetou.xinyongkaguanjia.util.AchartUtil;
import com.yeetou.xinyongkaguanjia.util.NumberFormateUtil;
import android.os.Bundle;
import android.content.Intent;
import android.graphics.Color;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class C2Activity extends AbstractActivity {
/*
* 头部
*/
private LinearLayout LinearLayout_Ab_Left_Indicator; // 用于返回
private TextView TextView_Ab_Title; // 设置标题 “信用卡详情”OR“储蓄卡详情”
private MySpinnerButton c2_pick_date;
private RelativeLayout c2_cart;
private GraphicalView view;
private TextView c2_total_expend;
private LinearLayout c2_pie_legend;
private LinearLayout c2_bar_legend;
private LinearLayout c2_pie_bt;
private LinearLayout c2_bar_bt;
private RelativeLayout c2_pie_layout;
private RelativeLayout c2_bar_layout;
private DbStreamService dbStreamService;
private String thedate;
private Map<String, Float> expends;
private Map<String, Integer> category_img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_c2);
category_img = new HashMap<String, Integer>();
category_img.put("吃喝", R.drawable.food);
category_img.put("购物", R.drawable.shoping);
category_img.put("网购", R.drawable.ol_shoping);
category_img.put("出行", R.drawable.travel);
category_img.put("生活", R.drawable.life);
category_img.put("玩乐", R.drawable.game);
category_img.put("爱车", R.drawable.car);
init();
initHead("收支分析");
}
public void init() {
dbStreamService = new DbStreamService(C2Activity.this);
thedate = this.getIntent().getStringExtra("thedate");
expends = dbStreamService.getExpandByCategory(thedate);
c2_pick_date = (MySpinnerButton) findViewById(R.id.c2_pick_date);
c2_pick_date.setText(thedate);
List<String> datas = dbStreamService.getAllDate();
c2_pick_date.setListContent(datas);
c2_pick_date.setContainAll(false);
c2_pick_date.setMyListItemOnClick(new MyListItemOnClickListener() {
@Override
public void onClick(String text) {
thedate = text;
expends = dbStreamService.getExpandByCategory(thedate);
view = AchartUtil.getPieGraphicalView(C2Activity.this, expends);
c2_cart.removeAllViews();
c2_cart.addView(view);
setupPie();
setupXY();
}
});
c2_total_expend = (TextView) this.findViewById(R.id.c2_total_expend);
c2_pie_layout = (RelativeLayout) findViewById(R.id.c2_pie_layout);
c2_bar_layout = (RelativeLayout) findViewById(R.id.c2_bar_layout);
c2_pie_bt = (LinearLayout) findViewById(R.id.c2_pie_bt);
c2_bar_bt = (LinearLayout) findViewById(R.id.c2_bar_bt);
c2_pie_bt.setBackgroundColor(Color.GRAY);
c2_pie_bt.getChildAt(0).setVisibility(View.GONE);
c2_pie_bt.getChildAt(1).setBackgroundResource(R.drawable.c2_pie_click);
((TextView) c2_pie_bt.getChildAt(2)).setTextColor(Color.WHITE);
c2_pie_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
c2_pie_layout.setVisibility(View.VISIBLE);
c2_bar_layout.setVisibility(View.GONE);
c2_pie_bt.setBackgroundColor(Color.GRAY);
c2_pie_bt.getChildAt(0).setVisibility(View.GONE);
c2_pie_bt.getChildAt(1).setBackgroundResource(R.drawable.c2_pie_click);
((TextView) c2_pie_bt.getChildAt(2)).setTextColor(Color.WHITE);
c2_bar_bt.setBackgroundDrawable(null);
c2_bar_bt.getChildAt(0).setBackgroundResource(R.drawable.c2_bar_unclick);
((TextView) c2_bar_bt.getChildAt(1)).setTextColor(Color.GRAY);
}
});
c2_bar_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
c2_pie_layout.setVisibility(View.GONE);
c2_bar_layout.setVisibility(View.VISIBLE);
c2_bar_bt.setBackgroundColor(Color.GRAY);
c2_bar_bt.getChildAt(0).setBackgroundResource(R.drawable.c2_bar_click);
((TextView) c2_bar_bt.getChildAt(1)).setTextColor(Color.WHITE);
c2_pie_bt.setBackgroundDrawable(null);
c2_pie_bt.getChildAt(0).setVisibility(View.VISIBLE);
c2_pie_bt.getChildAt(1).setBackgroundResource(R.drawable.c2_pie_unclick);
((TextView) c2_pie_bt.getChildAt(2)).setTextColor(Color.GRAY);
}
});
// 初始化饼状图下面的
c2_cart = (RelativeLayout) findViewById(R.id.c2_cart);
view = AchartUtil.getPieGraphicalView(this, expends);
c2_cart.addView(view);
/*
* text_zhi = new TextView(this); text_zhi.setText("123");
* text_zhi.setTextColor(getResources().getColor(R.color.black));
* c2_cart.addView(text_zhi);
*/
c2_pie_legend = (LinearLayout) findViewById(R.id.c2_pie_legend);
setupPie();
// 初始化柱状图
c2_bar_legend = (LinearLayout) findViewById(R.id.c2_bar_legend);
setupXY();
}
// 获取长度的回调函数
/*
* public void getMaxWidth(final View view){ ViewTreeObserver vto =
* view.getViewTreeObserver(); vto.addOnPreDrawListener(new
* ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() {
* max_width = view.getMeasuredWidth(); System.out.println(max_width);
* return true; } }); }
*/
// 使用数组形式操作
class SpinnerSelectedListener implements OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}
// 初始化饼状图下边标注
public void setupPie() {
Iterator iter = expends.keySet().iterator();
int i = 0;
float sum = 0;
c2_pie_legend.removeAllViews();
while (iter.hasNext()) {
sum += expends.get(iter.next());
}
iter = expends.keySet().iterator();
while (iter.hasNext()) {
final String key = (String) iter.next();
View view = View.inflate(this, R.layout.activity_c2_pie_item, null);
// view.setBackgroundResource(R.color.white);
ImageView c2_color = (ImageView) view.findViewById(R.id.c2_color);
TextView c2_pie_category = (TextView) view.findViewById(R.id.c2_pie_category);
TextView c2_money = (TextView) view.findViewById(R.id.c2_money);
TextView c2_percent = (TextView) view.findViewById(R.id.c2_percent);
c2_pie_category.setText(key);
c2_money.setText(NumberFormateUtil.Fromate2ex(expends.get(key)));
c2_percent.setText(NumberFormateUtil.Fromate3(expends.get(key) / sum));
c2_color.setBackgroundColor(getResources().getColor(AppConstant.cart_color[i]));
c2_pie_legend.addView(view);
view.setTag(key);
final String thedate = c2_pick_date.getText().toString();
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent toBActivity = new Intent(C2Activity.this, BActivity.class);
toBActivity.putExtra("category", key);
toBActivity.putExtra("thedate", thedate);
toBActivity.putExtra("activityType", "C2Activity");
startActivity(toBActivity);
}
});
i++;
}
c2_total_expend.setText(NumberFormateUtil.Fromate2ex(sum));
}
// 初始化柱状图
public void setupXY() {
Iterator iter = expends.keySet().iterator();
int i = 0;
float max = 1;
c2_bar_legend.removeAllViews();
while (iter.hasNext()) {
float cur = expends.get(iter.next());
if (cur > max)
max = cur;
}
iter = expends.keySet().iterator();
while (iter.hasNext()) {
final String key = (String) iter.next();
View view = View.inflate(this, R.layout.activity_c2_bar_item, null);
/*
* if(i==0){ ImageView c2_bar_item_divide = (ImageView)
* view.findViewById(R.id.c2_bar_item_divide);
* c2_bar_item_divide.setVisibility(View.GONE); }
*/
ImageView c2_color = (ImageView) view.findViewById(R.id.c2_bar_color);
TextView c2_bar_item_category = (TextView) view.findViewById(R.id.c2_bar_item_category);
c2_bar_item_category.setText(key);
c2_color.setImageResource(category_img.get(key));
// 添加横向柱状图
ImageView c2_color_l = (ImageView) view.findViewById(R.id.c2_color_l);
c2_color_l.setLayoutParams(new LinearLayout.LayoutParams((int) (400 * expends.get(key) / max), 30));
c2_color_l.setBackgroundColor(getResources().getColor(AppConstant.cart_color[i]));
// 添加文字
TextView c2_money = (TextView) view.findViewById(R.id.c2_money);
c2_money.setText(NumberFormateUtil.Fromate2ex(expends.get(key)));
c2_bar_legend.addView(view);
view.setTag(key);
final String thedate = c2_pick_date.getText().toString();
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent toBActivity = new Intent(C2Activity.this, BActivity.class);
toBActivity.putExtra("category", key);
toBActivity.putExtra("thedate", thedate);
toBActivity.putExtra("activityType", "C2Activity");
startActivity(toBActivity);
}
});
i++;
}
}
private void initHead(String title) {
LinearLayout_Ab_Left_Indicator = (LinearLayout) this.findViewById(R.id.LinearLayout_Ab_Left_Indicator);
TextView_Ab_Title = (TextView) this.findViewById(R.id.TextView_Ab_Title);
TextView_Ab_Title.setText(title);
LinearLayout_Ab_Left_Indicator.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}