我想在android中绘制一个倒计时器,看起来有点像一只不断增长的“蛇”(来自90年代的诺基亚游戏)。我可以管理代码的倒计时器端,但不知道从哪里开始绘制屏幕外部的细线,随着时间的推移而增长。
我确实想知道制作大量的小图像,然后在计数失败时将它们隐藏起来,但这似乎是实现我想要的非常糟糕的方式。
对于这个含糊不清的问题感到抱歉,但我不知道从哪里开始,需要朝着正确的方向转向。
感谢;
安迪
答案 0 :(得分:0)
如果有人通过谷歌搜索这个帖子/搜索这里是我去的代码:
private class CustomView extends View {
public CustomView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (direction==120){
direction=0;
}
Paint green = new Paint(Paint.ANTI_ALIAS_FLAG);
green.setColor(Color.GREEN);
green.setStrokeWidth(3);
Paint red = new Paint(Paint.ANTI_ALIAS_FLAG);
red.setColor(Color.RED);
red.setStrokeWidth(4);
Paint thickgreen = new Paint(Paint.ANTI_ALIAS_FLAG);
thickgreen.setColor(Color.GREEN);
thickgreen.setStrokeWidth(20);
// thickgreen.setShadowLayer(12, 15, 15, Color.BLUE);
Paint thickred = new Paint(Paint.ANTI_ALIAS_FLAG);
thickred.setColor(Color.RED);
thickred.setStrokeWidth(20);
//thin bar
canvas.drawLine(barxstart, barystart, barxstop, barystop, thickgreen);
if (direction <60 && barxstop<canvas.getWidth()) {
barxstop=barxstop+1; //move 5 pixels right
barxstart=barxstart+1; //move 5 to the right
}
else{
canvas.drawLine(barxstart, barystart, barxstop, barystop, thickred);
barxstop=barxstop-1; //move 5 pixels left
barxstart=barxstart-1; //move 5 to the left
}
// canvas.drawBitmap(bar, barxstart, barystart, green);
direction++;
//mainbar
canvas.drawLine(mainbarxstart, mainbarystart, mainbarxstop, mainbarystop, thickgreen);
if (maindirection==1) {
canvas.drawLine(mainbarxstart, mainbarystart, mainbarxstop, mainbarystop, thickred);
}
if (brainstormlate==1){
//do something
}
invalidate();
}//end ondraw canvas
}//end custom view
基本的,可能不是最漂亮的东西,但它确实适用于我的应用程序。