1

저는 사용자 정의 UI 요소 하이라이트로 작업하고 있습니다. 런타임시 특정 뷰 위에 모양과 같은 반 타원을 그릴 필요가 있습니다.뷰 위에 윤곽 타원을 동적으로 그립니다.

예 : 흰 타원 위에 노란색 반 타원을 그려야합니다.

Like this

도움말을 이해할 수있을 것이다.

+0

캔버스를 추가 당신은 아무것도 시도 거란 말이에요을 그리는 데 사용 될 수 있는가? –

+0

@ 산 토쉬이 방향으로 나아갈 수있는 방법을 알려주십시오. –

답변

0
public class MyView extends View { 

    public MyView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 

     // TODO Auto-generated method stub 
     super.onDraw(canvas); 
     float width = (float) getWidth(); 
     float height = (float) getHeight(); 
     float radius; 

     if (width > height) { 
     radius = height/4; 
     } else { 
     radius = width/4; 
     } 

     Path path = new Path(); 
     path.addCircle(width/2, 
     height/2, radius, 
     Path.Direction.CW); 

     Paint paint = new Paint(); 
     paint.setColor(Color.BLACK); 
     paint.setStrokeWidth(5); 
     paint.setStyle(Paint.Style.FILL); 

     float center_x, center_y; 
     final RectF oval = new RectF(); 
     paint.setStyle(Paint.Style.STROKE); 

     center_x = width/2; 
     center_y = height/2; 

     oval.set(center_x - radius, 
      center_y - radius, 
      center_x + radius, 
      center_y + radius); 
     canvas.drawArc(oval, 90, 180, false, paint); 
    } 
} 

new MyView(this) 
+0

윤곽선이 지정된 뷰는 원이 아니므로 뷰 경계에 그려야합니다. –