一只刚刚上路的猿 2012-04-23
http://developer.aiwgame.com/canvas-draw-bar-charts-and-pie-charts-in-android.html
Canvas draw bar charts and pie charts in android!
Belowistheresult:
Main Activity PieColumar.java:
package com.dean; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.RectF; import android.os.Bundle; import android.view.Menu; import android.view.View; import com.entity.CountEntity; public class PieColumar extends Activity { CountEntity entity = new CountEntity(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DrawView myView = new DrawView(PieColumar.this); setContentView(myView); } public class DrawView extends View { private int value, location; // For statistical private double flagIn, flagOut, flagLeft; private float clotheRate, studyRate, trafficRate, otherRate; public DrawView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // Set the background color to light gray canvas.drawColor(Color.LTGRAY); // Define a Paint Paint paint = new Paint(); // Anti-aliasing paint.setAntiAlias(true); // Draw the abscissa paint.setColor(Color.BLACK); canvas.drawLine(40, 200, 300, 200, paint); // Draw the vertical axis paint.setColor(Color.BLACK); canvas.drawLine(40, 30, 40, 200, paint); // raw a horizontal line paint.setColor(Color.BLACK); for (int i = 170; i > 20; i -= 30) { canvas.drawLine(40, i, 280, i, paint); } // Set the title font size paint.setTextSize(18); paint.setColor(Color.RED); canvas.drawText( getResources().getString(R.string.graph_page_count), 65, 26, paint); canvas.drawText( getResources().getString(R.string.graph_page_consume), 100, 250, paint); // Set the font of each item is black paint.setColor(Color.BLACK); paint.setTextSize(15); // Income, expenditure, balance canvas.drawText( getResources().getString(R.string.second_page_countIn), 60, 220, paint); canvas.drawText( getResources().getString(R.string.second_page_countOut), 130, 220, paint); canvas.drawText( getResources().getString(R.string.second_page_countLeft), 200, 220, paint); canvas.drawText(getResources().getString(R.string.graph_page_top), 5, 40, paint); canvas.drawText( getResources().getString(R.string.graph_page_right), 265, 218, paint); // The vertical axis corresponds to the value of for (value = 300, location = 180; value 1500) { entity.setIncome(1500); canvas.drawText(flagIn + "", 100, 45, paint); } else if (entity.getIncome() > 0 && entity.getIncome() 1500) { entity.setOutcome(1500); canvas.drawText(flagOut + "", 160, 45, paint); } else if (entity.getOutcome() > 0 && entity.getOutcome()1500) { entity.setLeft(1500); canvas.drawText(flagLeft + "", 220, 45, paint); } else if (entity.getLeft() >= 0 && entity.getLeft()
CountEntity.java
package com.entity; public class CountEntity { double outClothe = 400; double outStudy = 200; double outTraffic = 150; double outOther = 450; double income = 1200; double outcome = 1050; double left = 150; public double getOutClothe() { return outClothe; } public void setOutClothe(double outClothe) { this.outClothe = outClothe; } public double getOutStudy() { return outStudy; } public void setOutStudy(double outStudy) { this.outStudy = outStudy; } public double getOutTraffic() { return outTraffic; } public void setOutTraffic(double outTraffic) { this.outTraffic = outTraffic; } public double getOutOther() { return outOther; } public void setOutOther(double outOther) { this.outOther = outOther; } public double getIncome() { return income; } public void setIncome(double income) { this.income = income; } public double getOutcome() { return outcome; } public void setOutcome(double outcome) { this.outcome = outcome; } public double getLeft() { return left; } public void setLeft(double left) { this.left = left; } }
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Android Developer - AiwGame.com</string> <string name="graph_page_count">Income, expenditure, balance of histogram</string> <string name="graph_page_consume">Income</string> <string name="second_page_countIn">Expend</string> <string name="second_page_countOut">Balance</string> <string name="second_page_countLeft">Subtotal</string> <string name="graph_page_top">$</string> <string name="graph_page_right">...</string> <string name="second_page_moneyoutOne">Clothes</string> <string name="second_page_moneyoutTwo">Study</string> <string name="second_page_moneyoutThree">Traffic</string> <string name="second_page_moneyoutFour">Other</string>
炒股风暴
//提供JSON数据,方便 .net、 java、 php 调用。本例在Asp.net MVC2.0下演示。<input type="button" id="btnReloadBar" value="