我正在使用绘图在android中绘制虚线。虚线在图形布局中显示,但不在设备上
dashed.setPathEffect(new DashPathEffect(new float[] { 5, 5 }, 0));
在开发过程中,在图形布局视图中,所有内容都显示正常。但是当我插入一个真实的设备时,该设备显示出一条实线。起初我以为是因为我的设备都是LG。然后我在三星S4上测试过:同样的问题。有谁知道如何解决这种差异?图形布局是说一件事,但没有实际的设备同意它是没有意义的。有什么建议?
我正在使用绘图在android中绘制虚线。虚线在图形布局中显示,但不在设备上
dashed.setPathEffect(new DashPathEffect(new float[] { 5, 5 }, 0));
在开发过程中,在图形布局视图中,所有内容都显示正常。但是当我插入一个真实的设备时,该设备显示出一条实线。起初我以为是因为我的设备都是LG。然后我在三星S4上测试过:同样的问题。有谁知道如何解决这种差异?图形布局是说一件事,但没有实际的设备同意它是没有意义的。有什么建议?
看看该视图关闭硬件加速帮助:
@Override
public static void disableHardwareRendering(View v) {
v.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
从Android开发页面上Hardware Acceleration:
使用一个软件层类型来强制软件渲染视图。 如果硬件加速的视图(例如,如果您的整个应用程序硬件加速),则会出现渲染问题,这是解决渲染管线硬件限制的简单方法。
有关此问题的更多信息,请访问code.google:Link。
如果你也许已经设置
android:hardwareAccelerated="true"
在你清单文件 - 复位(虚假集),或者更好取出整条生产线
禁用硬件加速,可能是没有最好的方式,试试这个从here:
Path baseline = new Path();
baseline.moveTo(0, 0);
baseline.lineTo(100, 0);
canvas.drawPath(baseline, paint);
哦,是的。我在新的float [] {5,5}中玩弄数字。没有不同。 –
您可以尝试关闭视图的硬件加速。覆盖'disableHardwareRendering(View v){v.setLayerType(View.LAYER_TYPE_SOFTWARE,null); }'。 – Vikram
这是@vikram。你是否介意张贴作为回应,所以我可以将这个帖子标记为已回答? –