在android应用程序中绘制像“倒计时器”的“蛇”

时间:2013-06-04 07:16:35

标签: android android-activity

我想在android中绘制一个倒计时器,看起来有点像一只不断增长的“蛇”(来自90年代的诺基亚游戏)。我可以管理代码的倒计时器端,但不知道从哪里开始绘制屏幕外部的细线,随着时间的推移而增长。

我确实想知道制作大量的小图像,然后在计数失败时将它们隐藏起来,但这似乎是实现我想要的非常糟糕的方式。

对于这个含糊不清的问题感到抱歉,但我不知道从哪里开始,需要朝着正确的方向转向。

感谢;

安迪

1 个答案:

答案 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  

基本的,可能不是最漂亮的东西,但它确实适用于我的应用程序。