Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 虚线显示在图形布局中,但不显示在设备上_Android_Android Layout_Layout_Android Canvas - Fatal编程技术网

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

我正在用油漆在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开发者页面

使用软件图层类型强制在软件中渲染视图。 如果视图是硬件加速的(例如,如果 应用程序已硬件加速),存在渲染问题, 这是一种克服硬件限制的简单方法 渲染管道

有关此问题的更多信息,请访问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);