如何使用正确的配置在 android.graphics.Path 中绘制箭头线
Posted
技术标签:
【中文标题】如何使用正确的配置在 android.graphics.Path 中绘制箭头线【英文标题】:How to Draw Arrowline in android.graphics.Path with correct configerations 【发布时间】:2014-10-10 05:52:32 【问题描述】:我的尝试:
我正在尝试使用以下代码显示箭头线
Path mArrowPath=new Paint();;
mArrowPath.rewind();
mArrowPath.moveTo(0, mHeight / 2);
mArrowPath.lineTo(mWidth / 2, 0);
mArrowPath.lineTo(mWidth, mHeight / 2);
mArrowPath.lineTo(mWidth * 3 / 4, mHeight / 2);
mArrowPath.lineTo(mWidth * 3 / 4, mHeight);
mArrowPath.lineTo(mWidth / 4, mHeight);
mArrowPath.lineTo(mWidth / 4, mHeight / 2);
mArrowPath.lineTo(0, mHeight / 2);
Shape pathshap = new PathShape(mArrowP,maxWidth,maxHeight);
ShapeDrawable shapeD = new ShapeDrawable(pathshap);
shapeD.draw(canvas); //display it in onDraw(Canvas canvas)
我得到了以下结果
问题:
我无法绘制所需的预期结果,我无法理解/找到用于显示以下结果的路径配置参数! 我未能增加箭头线的length、width大小。
预期结果:
任何帮助将不胜感激!
【问题讨论】:
您是否尝试在代码中将mWidth
替换为mHeight
,反之亦然?
是的,我不擅长图形,我失败了增加箭头尾部的长度。具有指定的配置。
我不能使用 canvas.drawPath(path, paint) 来画这样的线 ***.com/questions/6713757/…
【参考方案1】:
你可以使用 canvas.rotate() 方法来旋转箭头
或
Path mArrowPath=new Paint();;
mArrowPath.rewind();
mArrowPath.moveTo(mWidth , mHeight / 2);
mArrowPath.lineTo(mWidth / 2, mHeight );
mArrowPath.lineTo(mWidth / 2, mHeight* 3 / 4);
mArrowPath.lineTo(0, mHeight* 3 / 4);
mArrowPath.lineTo(0, mHeight/ 4);
mArrowPath.lineTo(mWidth / 2, mHeight/ 4);
mArrowPath.lineTo(mWidth / 2,0);
mArrowPath.lineTo(mWidth , mHeight / 2);
Shape pathshap = new PathShape(mArrowP,maxWidth,maxHeight);
ShapeDrawable shapeD = new ShapeDrawable(pathshap);
shapeD.draw(canvas);
【讨论】:
在这种情况下,我不能使用画布,因为我使用的是 ShapeDrawable ,我可以使用 Matrix 进行任何形状旋转,我正在寻找 rifgt 配置来更改路径箭尾长度。 我认为是你的坐标有问题,试着用纸画。@LOG_TAG以上是关于如何使用正确的配置在 android.graphics.Path 中绘制箭头线的主要内容,如果未能解决你的问题,请参考以下文章
如何使用正确的配置在 android.graphics.Path 中绘制箭头线
如何使用带有确认框的 radajaxmanager 正确配置删除功能?