487_动态修改的复杂进度
来源:互联网 发布:网络视频管理系统 编辑:程序博客网 时间:2024/05/17 23:42
动态修改的复杂进度
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(totalWidth, totalHeight);
}
public void reDraw(int day) {
this.day = day;
this.invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//左边距离10dp
alreadyLength = dp10;
whitePosition = 0;
whitePercent = 0;
//创建线的bitmap
Bitmap lineBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic_goldline_disabled);
Bitmap line = BitmapUtil.zoomImage(lineBitmap, dp55, dp4);
//创建点的bitmap
Bitmap pointBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_goldpoint_disabled);
Bitmap point = BitmapUtil.zoomImage(pointBitmap, dp30, dp26);
//拿到白点位置和白色百分比
whitePosition = getWhitePosition(day);
whitePercent = getWhitePercent(day, whitePosition);
//画点和线
for (int i = 1; i <= 11; i++) {
if (i % 2 != 0) {
//画点,小于whitePosition,都是白的,比如是5,那么1,3都是白的
drawPoint(canvas, point, whitePosition, i);
} else {
//画线
drawLine(canvas, line, whitePosition, i);
}
}
}
private void drawPoint(Canvas canvas, Bitmap point, int whitePosition, int i) {
if (whitePosition >= i) {
//画白点
Bitmap whitePointBitmap;
if (i == 11) {
whitePointBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_rigoldpoint_pressed);
} else {
whitePointBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_legoldpoint_pressed);
}
Bitmap whitePoint = BitmapUtil.zoomImage(whitePointBitmap, dp30, dp26);
canvas.drawBitmap(whitePoint, alreadyLength, 0, paint);
alreadyLength = alreadyLength + dp30;
} else {
//画黄点
canvas.drawBitmap(point, alreadyLength, 0, paint);
alreadyLength = alreadyLength + dp26;
}
}
public void drawLine(Canvas canvas, Bitmap line, int whitePosition, int i) {
Bitmap whiteLineBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic_goldline_pressed);
Bitmap whiteLine = BitmapUtil.zoomImage(whiteLineBitmap, dp55, dp4);
if (i < whitePosition) {
//全白线
canvas.drawBitmap(whiteLine, alreadyLength, dp11, paint);
alreadyLength = alreadyLength + dp55;
} else {
canvas.drawBitmap(line, alreadyLength, dp11, paint);
if (whitePercent > 0) {
Bitmap partWhiteLine = Bitmap.createBitmap(whiteLine, 0, 0, (int) (dp55 * whitePercent), dp4);
canvas.drawBitmap(partWhiteLine, alreadyLength, dp11, paint);
whitePercent = 0;
}
alreadyLength = alreadyLength + dp55;
}
}
private int getWhitePosition(int day) {
if (day >= 1 && day < 3) {
return 1;
} else if (day >= 3 && day < 5) {
return 3;
} else if (day >= 5 && day < 7) {
return 5;
} else if (day >= 7 && day < 15) {
return 7;
} else if (day >= 15 && day < 25) {
return 9;
} else if (day >= 25) {
return 11;
}
return 0;
}
private double getWhitePercent(int day, int whitePosition) {
double percent = 0;
switch (whitePosition) {
case 0:
percent = 0;
break;
case 1:
percent = (day - 1) / 2d;
break;
case 3:
percent = (day - 3) / 2d;
break;
case 5:
percent = (day - 5) / 2d;
break;
case 7:
percent = (day - 7) / 8d;
break;
case 9:
percent = (day - 15) / 10d;
break;
case 11:
percent = 0;
break;
}
return percent;
}
0 0
- 487_动态修改的复杂进度
- 动态规划_复杂状态DP
- 285_画出连串的进度点
- 复杂状态的动态规划
- 动态显示impala sql的执行进度
- Spring_Spring_教程8_注入_复杂类型的注入
- 修改ecshop复杂重写里的"+"为"-"
- 较为复杂的动态规划整理
- 【集合DP】复杂状态的动态规划
- Quartz任务调度[Spring+Quartz结合]_实现任务的动态添加、修改和删除
- Quartz任务调度[Spring+Quartz结合]_实现任务的动态添加、修改和删除
- Android学习笔记(九)——更复杂的进度对话框
- 复杂表单的动态生成与动态验证
- 复杂表单的动态生成与动态验证
- styleSheet的动态修改
- Java动态显示文件上传进度的简单实现
- Java动态显示文件上传进度的简单实现
- Java动态显示文件上传进度的简单实现
- bzoj1606
- 463. Island Perimeter
- 如何使用MATLAB绘制不同类型的二维图形
- 最长上升子序列(LIS)——玲珑学院OJ 1097
- 工作1年的总结与思
- 487_动态修改的复杂进度
- 软件测试模型
- PV、UV、IP之间的区别与联系
- 浅谈检测浏览器版本的方法
- matlab绘制X,Y二维散点图并标出序号
- 使用TimerTask每隔2秒4秒交替执行程序
- 001.PHP冒泡排序
- 噩梦射手(SurvivalShooter)教程(八)
- 120. Triangle Medium