android – 动态壁纸中的动态文本

android – 动态壁纸中的动态文本,第1张

概述欢迎.我有个问题.我想做动态壁纸,这样每隔几秒钟就可以改变文字.该程序运行良好,因为文本正在改变,但更改,以便以前的文本仍然可见,几秒钟后,我有很多文本.我到处看,但我是初学者,不知道如何解决这个问题.有一个代码: private class MyWallpaperEngine extends Engine { private final Handler handler = new H 欢迎.我有个问题.我想做动态壁纸,这样每隔几秒钟就可以改变文字.该程序运行良好,因为文本正在改变,但更改,以便以前的文本仍然可见,几秒钟后,我有很多文本.我到处看,但我是初学者,不知道如何解决这个问题.有一个代码:

private class MyWallpaperEngine extends Engine {      private final Handler handler = new Handler();      private final Runnable drawRunner = new Runnable() {          @OverrIDe          public voID run() {            draw();          }    };      private Paint paint = new Paint();      private int wIDth;    int height;      private boolean visible = true;    public MyWallpaperEngine() {          paint = new Paint();        paint.setAntiAlias(true);        paint.setcolor(color.WHITE);        handler.post(drawRunner);      }    @OverrIDe      public voID onVisibilityChanged(boolean visible) {          this.visible = visible;          if (visible) {              handler.post(drawRunner);          } else {              handler.removeCallbacks(drawRunner);          }    }    @OverrIDe      public voID onSurfaceDestroyed(SurfaceHolder holder) {          super.onSurfaceDestroyed(holder);          this.visible = false;          handler.removeCallbacks(drawRunner);      }      @OverrIDe      public voID onSurfaceChanged(SurfaceHolder holder,int format,int wIDth,int height) {          this.wIDth = wIDth;          this.height = height;          super.onSurfaceChanged(holder,format,wIDth,height);      }      private voID draw() {          SurfaceHolder holder = getSurfaceHolder();          Canvas canvas = null;        try {              canvas = holder.lockCanvas();              if (canvas != null)                drawAnimation(canvas);        } finally {            if (canvas != null)                holder.unlockCanvasAndPost(canvas);        }        if (visible) {            handler.postDelayed(drawRunner,4000);          }    }    private voID drawAnimation(Canvas c){        Random r = new Random();        int i1=r.nextInt(200-50) + 50;        String text = Integer.toString(i1);        c.drawText(text,i1,paint);    }}
解决方法 您应该在绘图之前清除画布,使用类似的东西

c.drawcolor(int color);

或绘制覆盖整个区域的任何其他内容,否则您将只绘制画布上已有的内容.

总结

以上是内存溢出为你收集整理的android – 动态壁纸中的动态文本全部内容,希望文章能够帮你解决android – 动态壁纸中的动态文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1126522.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存