2012-08-08 4 views
1

나는 경로와 구현 된 경로를 따르는 객체를 가지고 있습니다. 움직이는 물체가 통과 한 경로의 다른 색을 그려주는 법. 여기애니메이션 경로 (안드로이드)에 페인트 변경

이미지에 대한 링크는 (어쩌면 내가 무슨 뜻인지 잘 설명) : 당신의 도움 :) 여기

+0

코드는 어디에 있습니까? 작동하지 않는 것은 무엇입니까? – 0gravity

+0

간단한 패스와 페인트 선언 및 초기화에 대한 코드가 필요하면 질문에 답하십시오. "DashPathEffect를보아야합니다."와 같은 힌트가 필요합니다. 다음에 더 잘 할 수있을 것이라고 확신합니다. :) – Crodel

답변

0

에 대한 moving object on path

들으 그것이

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); 
     } 
    } 
} 
: 할 수있는 방법을 예입니다