`
带个回家
  • 浏览: 139887 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

android使用Canvas画柱状图和饼图源码

阅读更多

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:
Aiw Game

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应用开发中,视觉元素的呈现是用户体验的关键部分,其中柱状图是一种常见的数据可视化方式,用于展示分类数据的比较。本示例将详细解析如何在Android项目中创建一个柱状图,并进行展示。 首先,我们需要...

    微信小程序Canvas绘制曲线图、饼图、柱状图、雷达图/蛛网图源码

    本文将详细讲解如何利用Canvas在微信小程序中绘制曲线图、饼图、柱状图以及雷达图/蛛网图。 首先,我们要了解Canvas的基本用法。在微信小程序中,可以创建一个 `&lt;canvas&gt;` 标签,并通过 `wx.createSelectorQuery()`...

    Android之动态折线、柱状、饼状图的实现

    本教程将探讨如何在Android平台上动态地实现折线图、柱状图和饼状图,这些图表是数据呈现的常见方式,尤其适用于数据分析和展示。 首先,让我们了解这三种图表的基本概念: 1. **折线图**:折线图通过连接一系列...

    android 多种统计图实现的源码

    "android 多种统计图实现的源码"提供了丰富的图形绘制能力,包括折线图、柱状图、饼图、点图以及它们的混合形式,如折线图与柱状图的组合。这些图形类型在许多应用场景下都非常实用,比如业务报表、数据分析应用、...

    WebChart生成漂亮饼图源码.zip

    通过学习和研究这个“WebChart生成漂亮饼图源码”,开发者不仅可以掌握如何在Web环境中生成饼图,还能深入理解Canvas绘图机制,进一步提升前端开发能力。同时,这也是一个很好的起点,可以在此基础上扩展出更多类型...

    CanvasJS实现的消费统计柱状图特效源码.zip

    CanvasJS提供了一系列的图表类型,包括柱状图、折线图、饼图等,这些图表可以通过JavaScript对象进行配置和定制。柱状图是其中最常见的图表之一,常用于对比不同类别的数据。在这个案例中,它被用来显示消费统计,...

    一个简洁美观的饼状图及柱状图Demo源码

    总的来说,这个Demo源码提供了一个快速入门的例子,帮助开发者了解如何使用ECharts创建饼状图和柱状图。通过分析和学习这个源码,你可以掌握ECharts的基本用法,进一步可以将其应用于自己的项目中,为数据可视化提供...

    Android 多种统计图表源码

    为了更好地使用这些源码,你需要理解每个类和方法的作用,熟悉Android的UI组件和绘图系统,如Canvas和Paint类。 总的来说,"Android多种统计图表源码"是Android开发者的一个宝贵资源,能够帮助他们轻松实现数据可视...

    Android 多种统计图表源码-IT计算机-毕业设计.zip

    MPAndroidChart是一个流行的开源库,用于在Android上绘制高质量的图表,包括线图、柱状图、饼图、散点图等。源码中很可能包含了这个库的使用方法,如设置数据、自定义样式、动画效果以及处理用户交互。 2. **数据...

    体会HTML5的canvas元素之图表练习源码

    在这个"体会HTML5的canvas元素之图表练习源码"中,我们可以深入学习如何使用canvas来绘制各种类型的图表,包括柱状图、折线图、饼图等。 首先,canvas是一个HTML标签,通过`&lt;canvas&gt;`在页面上定义一个画布区域。这...

    原生html配合canvas仿echarts图标组件合集源码.zip

    ECharts是一款由百度开发的开源可视化库,它提供了丰富的图表类型,如折线图、柱状图、饼图等,支持移动端和PC端,且具有高度可定制性。而Canvas是HTML5中的一个绘图元素,通过JavaScript可以实现动态图形绘制。 本...

    Android高级应用源码-安卓画曲线图代码.zip

    MPAndroidChart是其中非常流行的一个,它支持折线图、饼图、柱状图等多种图形,并且高度可定制化。根据标题和描述,我们可以推测这个源码可能基于MPAndroidChart或其他类似的库进行实现。 在源码中,开发者可能会...

    Android高级应用源码-Android 多种统计图表源码.rar

    源码可能包含`PieChartView`类,它利用Android的`Path`和`Canvas`进行绘制。开发者可以学习如何计算弧度、设置切片颜色以及处理点击事件来显示详细信息。 2. **柱状图(Bar Chart)**: 柱状图用于比较不同类别的数值...

    android统计图

    总结,"android统计图"源码的使用和研究可以帮助开发者深入了解Android平台上的数据可视化实现,提升应用的用户体验。通过对源码的学习,开发者不仅可以快速构建统计图功能,还能掌握到图形绘制、数据绑定、交互设计...

    Android应用源码之安卓画曲线图代码.zip

    这些库提供了丰富的图形绘制功能,包括折线图、柱状图、饼图等。MPAndroidChart是目前广泛使用的图形库,具有高度自定义、性能优秀的特点,我们推测这个源码可能使用了它。 2. **数据结构与数据绑定**: 在绘制...

    Android图形图表绘制控件

    `MPAndroidChart`以其强大的功能和灵活性而受到广泛欢迎,支持折线图、柱状图、饼图、雷达图等多种图表,同时支持自定义动画和手势操作。`AndroidPlot`则专注于提供美观的、可自定义的图形,适合需要复杂图形布局的...

    Android源码——图表生成类库_new_39.zip

    这些库提供了丰富的图表类型,如折线图、柱状图、饼图、散点图等,并且支持自定义样式和交互功能,极大地简化了开发过程。 MPAndroidChart是一个非常流行的Android图表库,由Phil Jay开发,它支持多种图表类型,...

    android_折线图相关源码

    开发者也可以选择使用成熟的第三方库,如MPAndroidChart,它提供了丰富的API和配置选项,能快速实现折线图功能,同时也支持饼图、柱状图等多种图表类型。 通过学习这个源码,开发者可以深入理解Android图形绘制原理...

    Android应用源码强大的统计图表库.zip

    此外,Android的View系统和绘图API(如Canvas和Paint)的使用也是关键,源码将揭示如何利用这些工具在屏幕上绘制复杂的图形。 学习这个库,开发者可以掌握如何响应用户的交互,比如点击图表项时触发事件,或者通过...

Global site tag (gtag.js) - Google Analytics