虚线显示在图形布局中,但不显示在设备上

Cot*_*nyo 6 layout android android-layout android-canvas

我正在使用paint在android中画一条虚线.

dashed.setPathEffect(new DashPathEffect(new float[] { 5, 5 }, 0));
Run Code Online (Sandbox Code Playgroud)

在开发过程中,图形布局视图中的所有内容都显示正常.但是当我插入一个真实设备时,该设备显示一条实线.起初我以为是因为我的设备都是LG.然后我测试了三星S4:同样的问题.有谁知道如何解决这种差异?图形布局说一件事并且没有实际的设备同意它是没有意义的.有什么建议?

Nok*_*uap 11

禁用硬件加速可能不是最好的方法,请从这里尝试:

Path baseline = new Path();
baseline.moveTo(0, 0);
baseline.lineTo(100, 0);
canvas.drawPath(baseline, paint);
Run Code Online (Sandbox Code Playgroud)

  • 这解决了我的问题。就我而言,`canvas.drawLine(x1, y1, x2, y2,paint)` 绘制的是实线而不是虚线。 (2认同)

Vik*_*ram 8

查看关闭视图的硬件加速是否有帮助:

@Override
public static void disableHardwareRendering(View v) {

    v.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

}
Run Code Online (Sandbox Code Playgroud)

来自Android开发者页面的硬件加速:

使用软件图层类型强制视图在软件中呈现.如果硬件加速的视图(例如,如果您的整个应用程序是硬件加密的),则存在渲染问题,这是解决硬件渲染管道限制的简单方法.

有关code.google上的此问题的更多信息:链接.