Android 自定义视图绘图质量不佳

Android Custom View drawing got bad quality

我正在重写 Android 上的视图来做一些自定义绘图,但呈现的视图质量不是很好,尤其是文本。我找到了几个解决方案,但 none 对我有用。在这里附上代码。感谢您的帮助。

@Override
    protected void onDraw(Canvas canvas) {
        int width = canvas.getWidth();
        int height = canvas.getHeight();

        Point a = new Point(0, 0);
        Point b = new Point(width / 2, height);
        Point c = new Point(width, 0);

        Path trianglePath = new Path();
        trianglePath.moveTo(a.x, a.y);
        trianglePath.lineTo(b.x, b.y);
        trianglePath.lineTo(c.x, c.y);
        trianglePath.lineTo(a.x, a.y);

        Paint paint = new Paint();
        paint.setStrokeWidth(1);
        paint.setColor(Color.parseColor("#7A7A7A"));
        paint.setStyle(Paint.Style.STROKE);
        paint.setAntiAlias(true);

        canvas.drawPath(trianglePath, paint);

        Paint textPaint = new Paint();
        textPaint.setStyle(Paint.Style.FILL);
        textPaint.setColor(Color.WHITE);
        textPaint.setTextSize(height / 6);
        textPaint.setTypeface(TypefaceUtils.getTypeface(getContext(), TypefaceUtils.AVAILABLE_FONTS.ROBOTO_THIN));

        String receive = getContext().getString(R.string.receive_password).split("\n")[0];
        String password = getContext().getString(R.string.receive_password).split("\n")[1];
        Rect receiveBounds = new Rect();
        Rect passwordBounds = new Rect();
        textPaint.getTextBounds(receive, 0, receive.length(), receiveBounds);
        textPaint.getTextBounds(password, 0, password.length(), passwordBounds);

        canvas.drawText(
                receive,
                (width - receiveBounds.width()) / 2,
                height / 3 - receiveBounds.height() + receiveBounds.height() / 5,
                textPaint);
        canvas.drawText(
                password,
                (width - passwordBounds.width()) / 2,
                height / 3 + receiveBounds.height(),
                textPaint);

        canvas.scale(1, 1);
    }

尝试设置textpaint.setAntiAlias(true);