我正在尝试绘制虚线作为ListView
分隔符项的分隔符,如下所示:
为了做到这一点,在其中一个案例中,我覆盖了OnDraw()
方法并使用了:
paint.SetPathEffect(new DashPathEffect(new[] { 2f, 2f }, 0));
_paint.StrokeWidth = 2;
使用DashPathEffect
dows绘制小点 - 但它们不是点 - 它们是小方块而不是圆点:
该应用程序是使用Xamarin框架上的monodroid构建的
有什么想法吗?
答案 0 :(得分:2)
设置画颜
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(30);
mPaint.setPathEffect(new DashPathEffect(new float[]{1, 60}, 0f));
mPaint.setStrokeCap(Paint.Cap.ROUND);
使用示例
canvas.drawPath(mPath, mPaint);
<强>更新强>
还有另一种方式。在这里你可以设置绝对任何形状
paintBlue = new Paint(Paint.ANTI_ALIAS_FLAG);
float mRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, context.getResources().getDisplayMetrics());
paintBlue.setStyle(Paint.Style.STROKE);
paintBlue.setAntiAlias(true);
paintBlue.setColor(Color.BLACK);
paintBlue.setStrokeWidth(12);
Path shapePath = new Path();
shapePath.addCircle(0, 0, mRadius, Path.Direction.CCW);
PathDashPathEffect pathDashPathEffect = new PathDashPathEffect(shapePath, mRadius * 4, 0, PathDashPathEffect.Style.ROTATE);
paintBlue.setPathEffect(pathDashPathEffect);
答案 1 :(得分:1)
如果您在API级别&gt; = 11的设备上进行测试,请尝试setting layer type到LAYER_TYPE_SOFTWARE