Почему следующий код работает на 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"
, но он не работает, потому что возникают проблемы с производительностью
В вашем классе View вы должны отключить аппаратное ускорение. Это позволит вам рисовать пунктирные и пунктирные линии
Вы можете сделать это:
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Попробуйте с этим простым кодом:
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();