Почему рисовать штриховые линии на холсте не работает?

1

Почему следующий код работает на Pixel 2, но не работает на Samsung Note 8?

linePaint.let { paint ->
     paint.style = Paint.Style.STROKE
     paint.color = ContextCompat.getColor(context, R.color.red)
     paint.strokeWidth = 10
     paint.pathEffect = DashPathEffect(floatArrayOf(10, 20), 0f)
}

canvas.drawLine(0, canvas.height / 2, canvas.width, canvas.height / 2, linePaint) 

Я видел советы по использованию android:hardwareAccelerated="false", но он не работает, потому что возникают проблемы с производительностью

Теги:
canvas

2 ответа

0

В вашем классе View вы должны отключить аппаратное ускорение. Это позволит вам рисовать пунктирные и пунктирные линии

Вы можете сделать это:

setLayerType(View.LAYER_TYPE_SOFTWARE, null);
  • 0
    это не работает, потому что возникают проблемы с производительностью
0

Попробуйте с этим простым кодом:

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.setLineDash([5, 3]);/*dashes are 5px and spaces are 3px*/
ctx.beginPath();
ctx.moveTo(0,100);
ctx.lineTo(400, 100);
ctx.stroke();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню