前段时间因为工作的需求,研究了一下自定义View的一些相关绘制方法,要求在指定区域内绘制多个矩形,并且矩形之前不重叠,效果图如下
image
数据是由后台返回的,给出了具体的横坐标,然后去计算纵坐标,这里我抽出来相关的核心算法代码,分享一下
/ **
在固定区域绘制多个标签,已知标签的左上角X坐标,宽,高,求解每个标签的最优的左上角ÿ坐标
* /
{
int centerY = mMainRect.Height()/ 2; //绘制区域中心点Y.
int centerX = mMainRect.Width()/ 2; //绘制区域中心点X.
int maxH = mMainRect.Height() - 10;
int minH = 0;
int offsetY = 20; //建议标签到分时图上的点的最佳偏移量
int marginY = 2; //每个标签Y轴坐标最小间距
int颜色;