gpt4 book ai didi

android - canvas.drawCircle 不起作用 - 而 drawLine 起作用 - 可能是由使用 Sherlock 引起的?

转载 作者:行者123 更新时间:2023-11-29 02:00:15 25 4
gpt4 key购买 nike

我对标准方法 canvas.drawCircle 有一个奇怪的问题。

虽然我在装有 Android 4.0.4 的三星 Galaxy S3 和另一台装有 2.1 的 S2 上运行完全相同的代码,但它没有问题。在装有 4.0.3 的 Acer 500 平板电脑上调用 drawCircledrawPath 时,相同的代码不会绘制任何内容。

这是代码:

    Paint thickLine = new Paint(scalePaint);
thickLine.setStrokeWidth(0.07f);
thickLine.setColor(Color.argb(0xff, 0xff, 0x36, 0x33));
thickLine.setFlags(Paint.ANTI_ALIAS_FLAG);
canvas.drawLine(0.5f, 0.5f, 0.1f, 0.1f, thickLine);
canvas.drawCircle(0.5f, 0.5f, 0.15f, thickLine);

但是 drawLine 在所有三种设备上都有效!

还要提一下 - 代码之前有效 - 然后我将标准 Fragments 更改为 SherlockFragments 并在应用程序中的几个地方修改了代码 - 始终在 S3 上进行测试。所以我不知道它在什么阶段开始不再适用于 Acer。

我还使用了包含此代码的旧的未更改绘图类(在我对应用程序进行所有更改之前)并将其复制到现在使用 Sherlock 的新版本中 - 即使项目代码的这个阶段不再像描述的那样工作.

所以我想这可能与 Sherlock 有关 - 然而,我不知道如何以及为什么 - 如果有的话......

任何人都有类似的经历,其中 drawLine 有效,但 drawCircledrawPath 无效?- 使用或不使用 Sherlock

非常感谢

最佳答案

我遇到了完全相同的问题 - Canvas.drawCircle 不适合我。幸运的是,还有另一个函数 - Canvas.drawOval。您可以在不更改构建目标的情况下使用它来绘制圆圈。

RectF tmpRect = new RectF();
tmpRect.top = 0;
tmpRect.bottom = diameter;
tmpRect.left = 0;
tmpRect.right = diameter;

//This call will draw nothing
canvas.drawCircle(tmpRect.centerX(), tmpRect.centerY(), tmpRect.width() / 2, selectionPaint);
//This call will draw a circle
canvas.drawOval(tmpRect, selectionPaint);

关于android - canvas.drawCircle 不起作用 - 而 drawLine 起作用 - 可能是由使用 Sherlock 引起的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com