http://developer.aiwgame.com/canvas-draw-bar-charts-and-pie-charts-in-android.html
Canvas draw bar charts and pie charts in android!
Below is the result:
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>
炒股风暴
分享到:
相关推荐
在Android应用开发中,视觉元素的呈现是用户体验的关键部分,其中柱状图是一种常见的数据可视化方式,用于展示分类数据的比较。本示例将详细解析如何在Android项目中创建一个柱状图,并进行展示。 首先,我们需要...
本文将详细讲解如何利用Canvas在微信小程序中绘制曲线图、饼图、柱状图以及雷达图/蛛网图。 首先,我们要了解Canvas的基本用法。在微信小程序中,可以创建一个 `<canvas>` 标签,并通过 `wx.createSelectorQuery()`...
本教程将探讨如何在Android平台上动态地实现折线图、柱状图和饼状图,这些图表是数据呈现的常见方式,尤其适用于数据分析和展示。 首先,让我们了解这三种图表的基本概念: 1. **折线图**:折线图通过连接一系列...
"android 多种统计图实现的源码"提供了丰富的图形绘制能力,包括折线图、柱状图、饼图、点图以及它们的混合形式,如折线图与柱状图的组合。这些图形类型在许多应用场景下都非常实用,比如业务报表、数据分析应用、...
通过学习和研究这个“WebChart生成漂亮饼图源码”,开发者不仅可以掌握如何在Web环境中生成饼图,还能深入理解Canvas绘图机制,进一步提升前端开发能力。同时,这也是一个很好的起点,可以在此基础上扩展出更多类型...
CanvasJS提供了一系列的图表类型,包括柱状图、折线图、饼图等,这些图表可以通过JavaScript对象进行配置和定制。柱状图是其中最常见的图表之一,常用于对比不同类别的数据。在这个案例中,它被用来显示消费统计,...
总的来说,这个Demo源码提供了一个快速入门的例子,帮助开发者了解如何使用ECharts创建饼状图和柱状图。通过分析和学习这个源码,你可以掌握ECharts的基本用法,进一步可以将其应用于自己的项目中,为数据可视化提供...
为了更好地使用这些源码,你需要理解每个类和方法的作用,熟悉Android的UI组件和绘图系统,如Canvas和Paint类。 总的来说,"Android多种统计图表源码"是Android开发者的一个宝贵资源,能够帮助他们轻松实现数据可视...
MPAndroidChart是一个流行的开源库,用于在Android上绘制高质量的图表,包括线图、柱状图、饼图、散点图等。源码中很可能包含了这个库的使用方法,如设置数据、自定义样式、动画效果以及处理用户交互。 2. **数据...
在这个"体会HTML5的canvas元素之图表练习源码"中,我们可以深入学习如何使用canvas来绘制各种类型的图表,包括柱状图、折线图、饼图等。 首先,canvas是一个HTML标签,通过`<canvas>`在页面上定义一个画布区域。这...
ECharts是一款由百度开发的开源可视化库,它提供了丰富的图表类型,如折线图、柱状图、饼图等,支持移动端和PC端,且具有高度可定制性。而Canvas是HTML5中的一个绘图元素,通过JavaScript可以实现动态图形绘制。 本...
MPAndroidChart是其中非常流行的一个,它支持折线图、饼图、柱状图等多种图形,并且高度可定制化。根据标题和描述,我们可以推测这个源码可能基于MPAndroidChart或其他类似的库进行实现。 在源码中,开发者可能会...
源码可能包含`PieChartView`类,它利用Android的`Path`和`Canvas`进行绘制。开发者可以学习如何计算弧度、设置切片颜色以及处理点击事件来显示详细信息。 2. **柱状图(Bar Chart)**: 柱状图用于比较不同类别的数值...
总结,"android统计图"源码的使用和研究可以帮助开发者深入了解Android平台上的数据可视化实现,提升应用的用户体验。通过对源码的学习,开发者不仅可以快速构建统计图功能,还能掌握到图形绘制、数据绑定、交互设计...
这些库提供了丰富的图形绘制功能,包括折线图、柱状图、饼图等。MPAndroidChart是目前广泛使用的图形库,具有高度自定义、性能优秀的特点,我们推测这个源码可能使用了它。 2. **数据结构与数据绑定**: 在绘制...
`MPAndroidChart`以其强大的功能和灵活性而受到广泛欢迎,支持折线图、柱状图、饼图、雷达图等多种图表,同时支持自定义动画和手势操作。`AndroidPlot`则专注于提供美观的、可自定义的图形,适合需要复杂图形布局的...
这些库提供了丰富的图表类型,如折线图、柱状图、饼图、散点图等,并且支持自定义样式和交互功能,极大地简化了开发过程。 MPAndroidChart是一个非常流行的Android图表库,由Phil Jay开发,它支持多种图表类型,...
开发者也可以选择使用成熟的第三方库,如MPAndroidChart,它提供了丰富的API和配置选项,能快速实现折线图功能,同时也支持饼图、柱状图等多种图表类型。 通过学习这个源码,开发者可以深入理解Android图形绘制原理...
此外,Android的View系统和绘图API(如Canvas和Paint)的使用也是关键,源码将揭示如何利用这些工具在屏幕上绘制复杂的图形。 学习这个库,开发者可以掌握如何响应用户的交互,比如点击图表项时触发事件,或者通过...