Я столкнулся с проблемой при попытке нарисовать треугольник с обводкой.
Я попытался нарисовать один треугольник на холсте, используя путь, который представляет контур, а затем еще один поверх него, чтобы представить реальный треугольник..
public void drawTriangle(int coordX, int coordY, int sideLen, String fillColor, int strokeWidth, String strokeColor) {
this.marginSTART = coordX;
this.marginTOP = coordY;
this.getLayoutParams().width = sideLen;
this.getLayoutParams().height = sideLen-sideLen/8;
this.setX(this.marginSTART);
this.setY(this.marginTOP);
Paint paint = new Paint();
Bitmap bitmap = Bitmap.createBitmap(sideLen, sideLen, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
paint.setColor(Color.parseColor("#ff0000"));
canvas.drawPaint(paint);
paint.setStrokeWidth(0);
paint.setColor(Color.parseColor(strokeColor));
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setAntiAlias(true);
android.graphics.Point a = new android.graphics.Point(0, sideLen);
android.graphics.Point b = new android.graphics.Point(sideLen, sideLen);
android.graphics.Point c = new android.graphics.Point(sideLen/2, 0);
Path path = new Path();
path.setFillType(Path.FillType.EVEN_ODD);
path.setLastPoint(a.x, a.y);
path.lineTo(b.x, b.y);
path.lineTo(c.x, c.y);
path.lineTo(a.x, a.y);
path.close();
canvas.drawPath(path, paint);
Paint paint2 = new Paint();
paint2.setStrokeWidth(0);
paint2.setColor(Color.parseColor(fillColor));
paint2.setStyle(Paint.Style.FILL_AND_STROKE);
paint2.setAntiAlias(true);
android.graphics.Point a1 = new android.graphics.Point((strokeWidth*8)/10, sideLen-strokeWidth);
android.graphics.Point b1 = new android.graphics.Point(sideLen-(strokeWidth*8)/10, sideLen-strokeWidth);
android.graphics.Point c1 = new android.graphics.Point(sideLen/2, (strokeWidth*8)/10);
Path path2 = new Path();
path2.setFillType(Path.FillType.EVEN_ODD);
path2.setLastPoint(a1.x, a1.y);
path2.lineTo(b1.x, b1.y);
path2.lineTo(c1.x, c1.y);
path2.lineTo(a1.x, a1.y);
path2.close();
canvas.drawPath(path2, paint2);
BitmapDrawable bmpDrawable = new BitmapDrawable(getResources(), bitmap);
this.setBackground(bmpDrawable);
}
Результат, который я имею до сих пор: https://i.imgur.com/FVexwhe.png
Выглядит так плохо.Это деформировано.Я не понимаюГде мои ошибки?