2012-06-11 159 views
1

我试图在画布上绘制一个笑脸。 根据0-100之间的整数,嘴巴需要看起来很开心或不开心。下面的代码绘制的笑脸:如何在画布上绘制半椭圆形

paint.setStyle(Paint.Style.FILL); 
    paint.setColor(getColorByIntesity(intesity)); 
    canvas.drawCircle(23, 23, 20, paint); 

    paint.setColor(Color.BLACK); 
    canvas.drawCircle(15, 15, 3, paint); //Left eye 
    canvas.drawCircle(31, 15, 3, paint); //Right eye 

    paint.setStyle(Paint.Style.STROKE); 
    canvas.drawCircle(23, 23, 20, paint); 

    if(intesity >= 55) 
     canvas.drawArc(getMouthDrawingByIntesity(intesity), 180, 180, false, paint); //Mouth 
    else if(intesity < 55) 
     canvas.drawArc(getMouthDrawingByIntesity(intesity), 0, 180, false, paint); //Mouth 

我的方法绘制的嘴确实是这样ATM:

final RectF oval = new RectF(); 
    if(intesity < 5){ 
     oval.set(11, 12, 35, 35); 
    } etc.. 

但嘴看起来非常像素化。有没有人知道绘制曲线(椭圆的一半)的更好方法?

回答

1

试试这个:

paint.setAntiAlias(true); 

如果doesn't做的伎俩使用这样的:

paint.setPathEffect(new CornerPathEffect(10)); 

希望这有助于

+0

日Thnx了很多,它看起来好多了,现在:) – Luciano