2013-07-22 106 views
2

我正在使用绘图在android中绘制虚线。虚线在图形布局中显示,但不在设备上

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

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

+0

哦,是的。我在新的float [] {5,5}中玩弄数字。没有不同。 –

+0

您可以尝试关闭视图的硬件加速。覆盖'disableHardwareRendering(View v){v.setLayerType(View.LAYER_TYPE_SOFTWARE,null); }'。 – Vikram

+0

这是@vikram。你是否介意张贴作为回应,所以我可以将这个帖子标记为已回答? –

回答

6

看看该视图关闭硬件加速帮助:

@Override 
public static void disableHardwareRendering(View v) { 

    v.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

} 

从Android开发页面上Hardware Acceleration:

使用一个软件层类型来强制软件渲染视图。 如果硬件加速的视图(例如,如果您的整个应用程序硬件加速),则会出现渲染问题,这是解决渲染管线硬件限制的简单方法。

有关此问题的更多信息,请访问code.google:Link

0

如果你也许已经设置

android:hardwareAccelerated="true" 

在你清单文件 - 复位(虚假集),或者更好取出整条生产线

0

禁用硬件加速,可能是没有最好的方式,试试这个从here

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