【Android开发日记】AndroidCharts 柱状图 BarView修改:添加数值和颜色

 前言:前段时间做的工程,自己一个人小打小闹的修改着,代码不完善之处请在评论指出,谢谢!

工程来源:github AndroidCharts:https://github.com/dacer/AndroidCharts

修改:使得BarView可以显示数值和颜色

我的需求:将每间教室的总座位数,空座位数显示在图上

效果图:

代码1: 修改后的BarView.java

package com.androidcharts;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.Region;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import java.util.ArrayList;


/**
 * Created by Dacer on 11/11/13.
 */
public class BarView extends View {
    private ArrayList<Float> percentList;
    private ArrayList<Float> targetPercentList;
    private ArrayList<Float> AllpercentList;
    private ArrayList<Float> AlltargetPercentList;
    private Paint textPaint;
    private Paint BlankNumPaint;
    private Paint AllNumPaint;
    private Paint bgPaint;
    private Paint fgPaint;
    private Paint AllfgPaint;
    private Rect rect;
    private int barWidth;
//    private boolean showSideMargin = true;
    private int bottomTextDescent;
    private boolean autoSetWidth = true;
    private int topMargin;
    private int bottomTextHeight;
    
    private int clickarea;            //点击坐标轴上的区域的数值
    public boolean clickaarea = false; 
    public String clickroom = null;  
    
    private ArrayList<String> bottomTextList;
    private ArrayList<String> BlankSeatList;
    private ArrayList<String> AllSeatList;
    private final int MINI_BAR_WIDTH;
    private final int BAR_SIDE_MARGIN;
    private final int TEXT_TOP_MARGIN;
    private final int TEXT_COLOR = Color.parseColor("#9B9A9B");
    private final int NUM_COLOR = Color.parseColor("#1E90FF");
    private final int BACKGROUND_COLOR = Color.parseColor("#F6F6F6");
    private final int FOREGROUND_COLOR = Color.parseColor("#00FF7F");
    private final int AllFOREGROUND_COLOR = Color.parseColor("#AFEEEE");
    
    public interface DeliverRoomListener {
		public void DeliverRoom(String classname);
	}
	
	private DeliverRoomListener mDeliverRoomListener;
//	
	public void setRoomClickedListener(DeliverRoomListener listener){
		mDeliverRoomListener = listener;
    }
    
        
    private Runnable animator = new Runnable() {
        @Override
        public void run() {
                boolean needNewFrame = false;
                for (int i=0; i<targetPercentList.size();i++) {
                    if (percentList.get(i) < targetPercentList.get(i)) {
                        percentList.set(i,percentList.get(i)+0.02f);
                        needNewFrame = true;
                    } else if (percentList.get(i) > targetPercentList.get(i)){
                        percentList.set(i,percentList.get(i)-0.02f);
                        needNewFrame = true;
                    }
                    if(Math.abs(targetPercentList.get(i)-percentList.get(i))<0.02f){
                        percentList.set(i,targetPercentList.get(i));
                    }
                }
                i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值