自定义视图绘制圆产生椭圆
Posted
技术标签:
【中文标题】自定义视图绘制圆产生椭圆【英文标题】:Custom view draw circle produces ellipse 【发布时间】:2014-09-10 13:37:22 【问题描述】:我有一个自定义视图,我正在尝试在视图中间画一个圆圈。但是代码会生成一个椭圆:
Paint p = new Paint();
p.setStyle(Style.STROKE);
p.setColor(Color.GREEN);
p.setStrokeWidth(0.02f);
mCanvas.drawCircle(0.5f, 0.5f, 0.2f, p);
视图的宽度和高度与较暗的圆矩形相同。
【问题讨论】:
你确定你没有使用任何类型的drawable吗?喜欢背景,还是类似的? 没有可绘制对象,我使用的是画布。 【参考方案1】:经过几次尝试,我发现这是因为画布的宽度和高度不相等。 我不得不将画布缩放到相同的宽度/高度。 如果有人遇到同样的问题,这是我的代码:
mCanvas.save();
mCanvas.scale(1f, RATIO); //ratio between width and height
mCanvas.drawCircle(0.5f, 0.5f/RATIO, 0.2f, p);
mCanvas.restore();
【讨论】:
以上是关于自定义视图绘制圆产生椭圆的主要内容,如果未能解决你的问题,请参考以下文章