问题标签 [android-canvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
182095 浏览

android - 画布上的可绘制图像

如何将图像放到画布上以便在该图像上绘图?

0 投票
1 回答
1787 浏览

android - android中的阴影画笔样式

我需要帮助在画布上绘制阴影矩形(对角线描边)。现在除了手动制作之外,我找不到其他方法。有任何想法吗?

0 投票
2 回答
959 浏览

java - 将画布绘图保存到 sd 卡

我目前正在绘制画布,其中我有一个白色背景的画布(使用canvas.drawColor(Color.WHITE);)和一个允许用一些颜色绘画的卡通漫画的素描图像。问题是,当我去保存画布图像时,只有一个完成颜色的黑屏得到保存,既没有出现画布白色背景,也没有出现草图图像。我正在使用此代码来保存画布

请帮助,,,, Thnx 提前

0 投票
1 回答
4358 浏览

android - 动态壁纸+位图+画布

大家好!我在女巫中有这个动态壁纸我尝试通过画布显示位图(可绘制资源是 400k 1900x1200 jpg)。它强制关闭,我不明白为什么(这是我的第一个 Android 项目)。这些是“重要”位:

当我尝试在手机上运行它时出现的 logcat 错误是:

谢谢!:)

======================= 新闻:

并且似乎位图为空。现在我正在使用 480x800 以确保没有内存问题。该应用程序不会再因 if 语句而崩溃(空黑屏)

0 投票
1 回答
4873 浏览

android - 如何在画布上绘制多个位图

我在使用画布功能时遇到问题,用画布绘制 1 个位图没有问题,但是一旦我添加了第二个位图,它只会绘制最后一个位图,不会同时显示两者。请帮忙。这是我的代码。我的意图是在屏幕上独立地为这两个不同的位图设置动画。

谢谢

0 投票
3 回答
18522 浏览

android - 如何在View的背景上设置drawable?安卓

我的自定义视图中有下一个扩展 EditText 的代码:

为什么这个观点的背景上什么都没有?

0 投票
2 回答
2179 浏览

android - Android drawBitmap(...) 方法很慢?

我正在使用 SurfaceView 编写 Android 游戏。

SurfaceView 获得的画布绘制了一个 32 位的 PNG 图像,大小为 80x80,带有 alpha 层。drawBitmap 方法花费的时间是 2-3ms。

这是绘制这么小的图像的正常时间,还是在幕后发生了一些隐式转换?

我有大约 40 个游戏对象(基于精灵)应该被绘制,一次绘制所有这些对象的时间大约需要 100 毫秒。这非常慢,并且只为动态游戏提供 10FPS。我尝试了很多东西,比如关闭抗锯齿、关闭 alpha 等,但无济于事。

我应该如何优化绘图时间以至少获得 25FPS?

谢谢,兹拉特科

0 投票
1 回答
690 浏览

android - Android - 安全地同时访问画布?

我正在制作一个网格 + 瓷砖活动,其中瓷砖需要跨网格移动。网格(和图块)在 UI 的单独线程中的 SurfaceView 上绘制(UI 处理触摸事件并将它们推送到队列中以供网格处理)。

这一切都很好。我有一个工具栏,可以从中拖动图块。工具栏是一个已添加到相关布局(并在 UI 线程上运行)的视图。

无论我使用同步多少次或尝试同时保护画布不被写入,它最终仍然会导致原生 SIGSEV11。

一些潜在的解决方案:

  • 将所有内容放在一个线程中 - 由于触摸与绘图,可能会失败或非常慢
  • 在单个线程中绘制访问画布的所有内容。

这将需要进行可能需要几天时间的大规模更改。

我想知道是否有其他人遇到过类似的问题,以及我是否可以同步访问画布而不会出错。

非常感谢。

0 投票
2 回答
133115 浏览

android - 在 Android 中通过画布创建一个空位图并进行绘图

我想创建一个空位图并将画布设置为该位图,然后在位图上绘制任何形状。

0 投票
2 回答
740 浏览

android - Android:线程间歇性暂停

在我的应用程序中的随机点间歇性暂停的线程(CanvasThread)遇到一些问题。应用程序中的其他所有内容都会根据需要继续运行,只是这个线程由于某种原因随机阻塞并且不会在屏幕上绘制任何新内容。我注意到 Surface.lockCanvasNative() 似乎是该块之前调用的最后一个函数,并且是之后返回的第一个函数。在这样的模式中:

这在下面的跟踪视图中很明显: 冻结线程的traceview

如果有帮助,我一直在使用CanvasThread.run()以下内容:

如果我能提供任何其他有用的信息,请告诉我。我只是在寻找关于为什么我的线程此时可能会阻塞的线索?提前感谢您的帮助!

从那以后,我将块缩小到mSurfaceHolder.unlockCanvasAndPost(canvas);我在此调用之前和之后插入了一个日志,并且在应用程序冻结后没有记录之后的日志;但之前的日志是该线程上最后记录的事件。它也没有暂停或使用空画布,因为我也为这些实例输入了日志;在应用程序完成之前甚至不会记录一次。