设为首页 加入收藏

TOP

Android绘制简单饼状图(二)
2014-11-24 01:20:01 来源: 作者: 【 】 浏览:13
Tags:Android 绘制 简单
All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


/**
*
*/
package com.nekocode.xuedao.piechart;


import java.util.List;


import com.nekocode.xuedao.utils.MyUtils;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.RectF;
import android.graphics.Paint.Style;
import android.util.AttributeSet;


public class PieChart extends BaseChart {
public static final String DEFAULT_TITLE = "Pie Chart";
public static final boolean DEFAULT_DISPLAY_RADIUS = true;
public static final int DEFAULT_RADIUS_LENGTH = 80;
public static final int DEFAULT_RADIUS_COLOR = Color.WHITE;
public static final int DEFAULT_CIRCLE_BORDER_COLOR = Color.WHITE;
public static final Point DEFAULT_POSITION = new Point(0, 0);



private List data;
private String title = DEFAULT_TITLE;
private Point position = DEFAULT_POSITION;
private int radiusLength = DEFAULT_RADIUS_LENGTH;
private int radiusColor = DEFAULT_RADIUS_COLOR;
private int circleBorderColor = DEFAULT_CIRCLE_BORDER_COLOR;
private boolean displayRadius = DEFAULT_DISPLAY_RADIUS;


/*
* (non-Javadoc)
*
* @param context
*
* @see cn.limc.androidcharts.view.BaseChart#BaseChart(Context)
*/
public PieChart(Context context) {
super(context);
}


/*
* (non-Javadoc)
*
* @param context
*
* @param attrs
*
* @param defStyle
*
* @see cn.limc.androidcharts.view.BaseChart#BaseChart(Context,
* AttributeSet, int)
*/
public PieChart(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}


/*
* (non-Javadoc)
*
* @param context
*
* @param attrs
*
* @see cn.limc.androidcharts.view.BaseChart#BaseChart(Context,
* AttributeSet)
*/
public PieChart(Context context, AttributeSet attrs) {
super(context, attrs);
}


/*
* (non-Javadoc)
*
*

Called when is going to draw this chart


*

銉併儯銉笺儓銈掓浉銇忓墠銆併儭銈姐儍銉夈倰鍛笺伓


*

缁樺埗鍥捐〃鏃惰皟鐢/p>
*
* @param canvas
*
* @see android.view.View#onDraw(android.graphics.Canvas)
*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);


// get safe rect
int rect = super.getWidth() > super.getHeight() super.getHeight()
: super.getWidth();


// calculate radius length
radiusLength = (int) ((rect / 2f) * 0.90);


// calculate position
position = new Point((int) (getWidth() / 2f), (int) (getHeight() / 2f));


// draw this chart
drawCircle(canvas);


// draw data on chart
drawData(canvas);
}


protected void drawCircle(Canvas canvas) {


Paint mPaintCircleBorder = new Paint();
mPaintCircleBorder.setColor(Color.WHITE);
mPaintCircleBorder.setStyle(Style.STROKE);
mPaintCircleBorder.setStrokeWidth(2);
mPaintCircleBorder.setAntiAlias(true);


// draw a circle
canvas.drawCircle(position.x, position.y, radiusLength,
mPaintCircleBorder);
}


protected void drawData(Canvas canvas) {
if (n

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java字符生成器简单例子 下一篇ActionBarSherlock实现自定义扁平..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: