2015-10-20 31 views
0

我可以使用哪种解决方案在将每个字母绘制到画布之前制作动画?四,搜索互联网,我似乎没有看到任何合理的...Android LiveWallpaper动画制图

private void draw() { 
     SurfaceHolder holder = getSurfaceHolder(); 
     Canvas canvas = null; 
     try { 
      canvas = holder.lockCanvas(); 
      if (canvas != null) { 

       // Draw background 
       canvas.drawColor(PrefService.getBgColor());         

       StaticLayout textLayout = new StaticLayout(TEXT_I_WOULD_LIKE_TO_ANIMATE, textPaint, screenWidth - screenWidth/8, Layout.Alignment.ALIGN_CENTER, 1.0F, 1.0F, true); 
       canvas.translate((screenWidth/2) - (textLayout.getWidth()/2), (screenHeight/2) - ((textLayout.getHeight()/2))); 
       textLayout.draw(canvas); 
      } 
     } finally { 
      if (canvas != null) {    
        holder.unlockCanvasAndPost(canvas);     
      } 
     } 
    } 
    handler.removeCallbacks(drawRunner); 
    handler.postDelayed(drawRunner, 20000); 
} 

注意TEXT_I_WOULD_LIKE_TO_ANIMATE变量上面StaticLayout

任何帮助,不胜感激

回答

0

创建一个至极渲染线程你循环你绘制方法。然后,您可以为文本变量创建位置并更改每帧的文本位置。要在画布上绘制文本,应使用canvas.drawText(...)。 我希望我能帮助你。