2012-08-08 89 views
1

我有一个路径和一个跟随实现的路径的对象。如何使移动对象在其路径上绘制另一种颜色。更改动画路径上的颜色(android)

这里的链接图像(也许它更好地解释我的意思):moving object on path

THX对您有所帮助:)

+0

你的代码在哪里?什么不起作用?等 – 0gravity 2012-08-08 19:52:00

+0

如果你需要简单的路径和油漆声明和初始化的代码,然后你回答这个问题... 我只需要一个提示,如“你应该看看DashPathEffect”。我相信你会做得更好,下次:) – Crodel 2012-08-09 10:44:56

回答

0

下面是一个例子如何可以做到:)

public class MainActivity extends Activity { 

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(new SampleView(this)); 
    } 

    private static class SampleView extends View { 
     private Paint mPaint,followingPaint; 
     private Path mPath=new Path(); 
     private PathEffect mEffect; 
     private float mPhase; 
     private PathMeasure pm; 
     private float pmLen; 

     public SampleView(Context context) { 
      super(context); 
      setFocusable(true); 
      setFocusableInTouchMode(true); 

      mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
      mPaint.setStyle(Paint.Style.STROKE); 
      mPaint.setStrokeWidth(10); 
      followingPaint= new Paint(Paint.ANTI_ALIAS_FLAG); 
      followingPaint.setStyle(Paint.Style.STROKE); 
      followingPaint.setStrokeWidth(8); 

      mPath.moveTo(50, 150); 
      mPath.quadTo(100,200,150, 150); 
      mPath.quadTo(200,100,300, 150); 
      pm=new PathMeasure(mPath,false); 
      pmLen = pm.getLength(); 

     } 

     @Override protected void onDraw(Canvas canvas) { 
      canvas.drawColor(Color.WHITE); 

      mEffect = new DashPathEffect(new float[] {pmLen, pmLen}, mPhase+pmLen); 
       mPhase -= 4; 
      invalidate();  
      followingPaint.setPathEffect(mEffect); 
      mPaint.setColor(Color.BLACK); 
      followingPaint.setColor(Color.WHITE); 
      canvas.drawPath(mPath, mPaint); 
      canvas.drawPath(mPath, followingPaint); 
     } 
    } 
}