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

时间:2013-07-22 18:05:31

标签: android android-layout layout android-canvas

我正在使用paint在android中绘制一条虚线。

dashed.setPathEffect(new DashPathEffect(new float[] { 5, 5 }, 0));

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

3 个答案:

答案 0 :(得分:7)

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

@Override
public static void disableHardwareRendering(View v) {

    v.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

}

来自Hardware Acceleration:

上的Android开发者页面
  

使用软件图层类型强制在软件中呈现视图。   如果视图是硬件加速的(例如,如果你的整个   应用程序是硬件加载的,有渲染问题,   这是一种解决硬件限制的简单方法   渲染管道。

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

答案 1 :(得分:4)

禁用硬件加速可能不是最佳方式,请从here尝试此操作:

Path baseline = new Path();
baseline.moveTo(0, 0);
baseline.lineTo(100, 0);
canvas.drawPath(baseline, paint);

答案 2 :(得分:1)

如果您可能已经设置

android:hardwareAccelerated="true" 

清单文件中 - 重置它(设置为false)或更好地删除整行