1

私は、カスタムUI要素のハイライトを扱っています。実行時に特定のビューの上に半円のような形を描く必要があります。ビューに輪郭の楕円を動的に描画します

例: 白い楕円の上に黄色の半楕円を描く必要があります。

Like this

ヘルプが理解されるであろう。

+0

キャンバスを追加し、あなたが何をしようとしたthis.haveを描画するために使用することができますか? –

+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

アウトラインビューはまさに円ではなく、ビューの境界線に描画します。 –

関連する問題