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

口を描く私の方法は、次のようなものです。

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

しかし、口は本当にピクセル化されているように見えます。曲線(楕円の半分)を描くためのより良い方法を知っている人はいますか?

4

1 に答える 1

2

これを試して:

paint.setAntiAlias(true);

それでもうまくいかない場合は、次を使用してください。

paint.setPathEffect(new CornerPathEffect(10));

お役に立てれば

于 2012-06-11T12:09:38.543 に答える