为什么在画布上无法绘制虚线?

时间:2019-04-16 21:52:37

标签: android canvas

以下代码为何在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"的提示,但由于出现了性能问题而无法使用

1 个答案:

答案 0 :(得分:-1)

在View类上,应该禁用硬件加速。这将使您能够绘制虚线和虚线

您可以通过以下方式实现:

setLayerType(View.LAYER_TYPE_SOFTWARE, null);