Android 虚线显示在图形布局中,但不显示在设备上
我正在用油漆在android中画一条虚线Android 虚线显示在图形布局中,但不显示在设备上,android,android-layout,layout,android-canvas,Android,Android Layout,Layout,Android Canvas,我正在用油漆在android中画一条虚线 dashed.setPathEffect(new DashPathEffect(new float[] { 5, 5 }, 0)); 在开发过程中,在图形布局视图中,一切都显示得很好。但是当我插入一个真正的设备时,设备显示一条实线。起初我以为是因为我的设备都是LG的。然后我在三星S4上测试:同样的问题。有人知道如何解决这个矛盾吗?图形布局是在说一件事,而实际设备却不同意这一点,这是毫无意义的。有什么建议吗?查看关闭视图的硬件加速是否有帮助: @Over
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开发者页面
使用软件图层类型强制在软件中渲染视图。
如果视图是硬件加速的(例如,如果
应用程序已硬件加速),存在渲染问题,
这是一种克服硬件限制的简单方法
渲染管道
有关此问题的更多信息,请访问code.google:。如果您已经设置了
android:hardwareAccelerated="true"
在您的清单文件中,重置它(设置为false),或者最好删除整行,禁用硬件加速可能不是最好的方法,请尝试以下操作:
哦,是的。我在新的float[]{5,5}中处理数字。没有区别。您可以尝试关闭视图的硬件加速。覆盖
disableHardwareRendering(View v){v.setLayerType(View.LAYER_TYPE_SOFTWARE,null);}
。就是这样,@vikram。你介意发布作为回应,这样我就可以将此线程标记为已回答?这解决了我的问题。在我的例子中,canvas.drawLine(x1,y1,x2,y2,paint)
画的是一条实线而不是虚线。我没想到这会奏效,但我们做到了。绘制线不会生成虚线,但使用相同的绘制绘制线路径会生成虚线。疯狂的是,像画一条虚线这样的基本东西在某些设备上不起作用,而机器人在其他设备上起作用
Path baseline = new Path();
baseline.moveTo(0, 0);
baseline.lineTo(100, 0);
canvas.drawPath(baseline, paint);