问题标签 [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 投票
4 回答
1360 浏览

java - 无需大修即可使我的画布可滚动

我正在为 android 开发一款 2-D 游戏,我主要将其用作学习 android 应用程序编程的进出的经验,所以我自然会遇到很多难题来解决。目前,我的主要活动实例化了一个自定义类,该类扩展了 SurfaceView 并实现了 SurfaceHolder.Callback。该视图实例化了一个线程,该线程处理大部分逻辑和所有图形处理(这包括实例化画布并对其进行绘图等)。

好吧,作为一个初学者,当我开始将画布设计为比屏幕大得多并允许用户滚动查看画布的所有部分时,我并没有想到......但是,唉,这就是我的想法需要发生。

如果有一个简单的方法可以做到这一点,请告诉我。

我最好的猜测是将画布的实际创建放在一个单独的类中,该类扩展了 ScrollView 并以某种方式从我的线程中调用所有 Draw() 到该画布。这可能吗?我的点击事件实际上是从主要活动中捕获的(仅供参考)。

0 投票
2 回答
10484 浏览

java - 在 Canvas for Android 中撤消和重做

我正在使用具有其他一些功能的 Android 版FingerPaint的定制版本,例如插入图像和移动它们。我决定实施 Undo&Redo,因为它会让生活变得更轻松。为了实现它,我最终决定使用一个堆栈来推送视图的绘图缓存,并且每次我想回到以前的状态时,我都会从那里推送内容。因此,使用 FingerPaint 作为基础,我有以下内容:

堆栈仅在目前修改后才更新,因为我仍在想办法解决这个问题。当我想应用重做时,我执行以下操作:

到目前为止,应用程序显示的屏幕的原始状态没有任何变化。我也尝试用白色背景绘制它以重置它,但这种方法也不起作用。

关于如何解决这个问题的任何想法或建议?我真的很感激:)

问候

0 投票
1 回答
1435 浏览

android - Canvas.drawVertices 中的错误?(带有复制代码和 logcat)

只需将此代码粘贴到一个简单的框架 Android 项目中。

然后在主Activity的onCreate中将此设置为主视图。

这应该使应用程序退出,没有错误,甚至没有“强制关闭”对话框。Logcat 也没有给我任何有用的东西(http://pastebin.com/c67NJnBz)!

但是,以下两个 drawVertices 调用都会产生所需的效果。

难道我做错了什么?请帮我确定这是否是 Android API 错误。

0 投票
1 回答
486 浏览

android - 在顶部堆叠画布位图,但底部画布上的更改显示

我试图弄清楚如何将两个画布分层,其中一个有一个位图,第二个是我实际绘制的。

所以基本上我所拥有的是:

mCanvas用户将在哪里绘制,并且是imageCanvas绘制位图的位置。

图像是黑白的,我希望黑线始终显示出来,所以我希望它作为堆栈的顶部。

看来我需要确保图像的白色部分需要是透明的,当我加载图像时我可能需要这样做,因为期望它是这样的期望太多了。

那么,如何将这两个画布堆叠在同一个视图中,并drawLine在底部画布上显示它们的位置?

我确实看过这个问题,但我认为它不相似:

分层图像加画布

0 投票
2 回答
10744 浏览

android - Android动态壁纸——OpenGL vs Canvas

我是一个相当“新手”的 Android 开发人员,我希望我的第一个项目之一是动态壁纸,但是我对是否应该专注于 Canvas 或 OpenGL 感到矛盾。作为新手,我知道我应该首先掌握 Canvas,因为它更易于使用,但我更喜欢从我感兴趣的现实世界项目中学习,即使它有时有点倒退。

我以前以非常基本的方式使用过这两种方法,我理解它们的一般概念,但我不确定它们是如何转移到动态壁纸领域的。我认为动态壁纸不需要 OpenGL 的全速运行,因为以最大 FPS 运行它只会消耗过多的电池电量,但同时我担心使用 Canvas 会导致延迟和更改主屏幕等操作时出现口吃。

我一直倾向于使用 OpenGL ES 2.0,既要保持最佳性能,又因为我对壁纸的最初想法涉及很多分层,我不确定 Canvas 是否能够做到,但我希望有经验的开发人员对是否或者并非所有使用 OpenGL 所涉及的额外工作(尤其是与动态壁纸有关,据我所读)都是值得的。

0 投票
5 回答
576 浏览

java - NullpointerException 在 Canvas 上绘制位图

为什么我会收到 NullpointerException?

谢谢!

ps:我是Java新手。

输出:

0 投票
2 回答
1781 浏览

android - 在画布上绘制文本并使其在屏幕上可见

此代码应该将文本转换为图像

这段代码可以吗?如果是,我怎样才能使这个新位图在屏幕上可见?我尝试了这个产生错误的代码

我对元素感到困惑,Canvas因为 XML 中没有可以在代码中使用的元素。

0 投票
1 回答
5656 浏览

android - 如何在谷歌地图上放置图钉以及如何在谷歌地图的对话框中获取当前地址?

我正在开发一个与谷歌地图相关的应用程序。我是谷歌地图的初学者。

我想做一个在我当前位置显示 Pin 的应用程序。当我单击该引脚时,它会显示包含我当前地址的对话框。“别针是可移动的”。当我在谷歌地图上将图钉从一个位置移动到另一个位置时,对话框会显示该位置的地址。

所以请给我想法或参考网站。

0 投票
1 回答
4282 浏览

android - 如何画一条半透明的白线?

我将颜色的十六进制代码设置为#70ffffff,我所做的只是 canvas.drawline() 并将颜色设置为该十六进制。

0 投票
1 回答
935 浏览

java - drawBitmap 耗时太长

你好这里是代码:

现在会发生什么,drawBitmap 从 5 分钟开始就被阻塞了……有什么想法吗?