问题标签 [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.
android - Droid 上的 Android Canvas 性能糟糕
在过去的几个月里,我一直在为 Android 开发一款游戏,它即将完成。我最近购买了摩托罗拉 Droid 用于测试目的,因为我使用 HTC Incredible 开发游戏。在我的 Incredible 上,我可以在整个游戏中获得相当稳定的 59 fps。在 Droid 上,游戏变得非常不稳定,平均大约 40 fps。这两款手机都运行 Android 2.2。
我查看了技术规格,这是我注意到可能影响游戏玩法的唯一差异:1 GHz 处理器与 550 MHz 和 512 MB RAM 与 256 MB RAM。
只是为了咯咯笑,我想我会把游戏精简到一个非常小的状态,看看这是否是我的编码问题。我将它剥离到唯一的问题是绘制主菜单并在屏幕上移动各种位图。没有超过 45 fps 的头发。
那么,这是摩托罗拉 Droid 的近似上限吗?如果是这样...我的游戏非常简单且非 CPU 密集型,那我该怎么办?还有数以千计的其他 Android 游戏比我自己的要求高得多,但它们似乎运行得非常流畅。
是不是我使用的是 Android 的内置 Canvas 而不是 Open-GL 或其他替代方案?有人会建议这样做吗?
有人可以启发我这里可能是我的问题吗?
提前致谢。
java - 在 Android 上将文本转换为位图(像素)
我有一个 android 应用程序,我需要从网站下载文本,将其转换为位图格式并将其显示在基于 LED 的显示板上。
我正在为位图转换而苦苦挣扎。
尝试使用以下内容:
但这似乎不起作用。有什么建议么?
更新:
Paint 对象的初始化如下:
android - 如何使用画布在位图中绘制笔触?
我需要绕过 a 的角Bitmap
。之后,我需要为它添加一个边框。我已经完成了下面的源来圆角,但我不知道如何在Bitmap
using中绘制边框Canvas
。有什么办法吗?谢谢
我已经添加了解决方案:
android - 如何使用画布重绘选项菜单图标
我正在尝试在我的活动中的 onPrepareOptionsMenu 中获取一个选项菜单图标,并在画布的帮助下重新绘制它:
不幸的是,什么都没有发生。菜单中有与以前相同的图标图像。有人可以告诉我我使用的代码有什么问题吗?
java - 使用 canvas.drawcircle 在 google-maps android 中标记一个点
我想在谷歌地图中标记某些点,我阅读了http://developer.android.com/resources/tutorials/views/hello-mapview.html
但是我面临的问题是,当我们想在谷歌地图上显示图像时,这种方法很有用,但是我想要一个可以有任何给定颜色的圆圈。
我还想在用户单击圆圈时显示祝酒词(我知道如果我们使用可绘制对象可以轻松完成)
我无法找到解决方案。
任何帮助,将不胜感激。
提前感谢
android - 绘制多个矩形而不调用 invalidate()
我正在尝试绘制多个矩形。我希望能够手动绘制每个矩形。我可以画一个,但是一旦我调用 invalidate(),画布就会被清除。是否有另一种方法可以调用 onDraw() 以使画布不会被清除?这是我所拥有的:
我只是有一个扩展 SurfaceView 的类,然后覆盖 onDraw
然后我覆盖了一个 OnTouchEvent
我这样做完全错了吗?:)
任何帮助,将不胜感激。
谢谢!
android - 获取包含 Bitmap-backed Canvas 的 Android 视图上的点的像素颜色值
我试图找出在View上给定点获取像素颜色值的最佳方法。我可以通过三种方式写入视图:
我使用Canvas.drawText(...)、Canvas.drawLine(...)等将文本、画线等写入Bitmap-backed Canvas。
我通过让它们写入传递给视图的onDraw(Canvas canvas)方法的 Canvas 来绘制子对象(精灵)。
这是我的类中扩展 View 的 onDraw() 方法:
获得考虑所有这些来源的像素颜色值的最佳方法是什么?
java - 在 Android Canvas 上围绕字符串放置一个矩形
所以我使用Canvas.drawText在Canvas上绘制一些字符串。问题是我想在它之前绘制一个矩形,以便文本显示在矩形的中心。但我遇到了一个真正的问题。提供给drawText的x和y坐标实际上不在真实文本的“左上角”,而是在字符开始的那一行。有一个Paint.getTextBounds方法,它在将要绘制的文本的(0,0)处返回一个“具有隐含原点”的矩形。问题是原点在(0,0). 该框的宽度和高度是正确的,但我不知道如何将其左上角放置在画布上绘制的字符串的左上角。我想我应该使用FontMetrics,但由于FontMetrics返回的许多值都没有记录,我不确定如何将它们用于我的目的。
java - 为什么我的图像缩放不正确?
我试图根据发送到更新函数的水平尺寸将图像缩放到一定大小,但以下代码似乎无法正确调整图像大小。
编辑:代码:
结果。(蓝色矩形是图像预期大小的边界框)
我在哪个部分出错了?
编辑2:这是眼镜:
编辑 3:出于好奇,我在我的实际手机上运行它,得到了截然不同的结果,图像被拉伸通过了预期的蓝色框。
编辑 4:我尝试在几个模拟器上运行该应用程序,看看它是否是 Android 版本不兼容的问题,但它们似乎都运行良好。缩放问题只发生在我的手机(Vibrant,rooted,CM7)和我表弟的(Droid,也rooted)上。这些是我测试过的唯一物理设备,但它们似乎都有相同的问题。如果有人可以在这里帮助我,我将非常感激,这是我项目中的一个巨大障碍,没有其他论坛或消息组响应。
编辑 5:我应该提到,在更新 4 中,代码发生了一些变化,正如我所说,它解决了模拟器中的问题,但不适用于物理设备。更改在上面的代码中更新。*急需帮助*:P
编辑 6:又一次更新,我在旧 G1 上测试了相同的代码,它按预期完美运行。我现在完全没有头绪。
android - 应用程序无法在 Samsung Transform 上正确显示
我的游戏Hidden Treasures已经上市两个多月了。最近,一位客户提出了一个以前从未发生过的新问题。
根据客户的说法,用他们的话说:
“有一条对角线穿过它,就像图像是向后的,所以这条线的右侧显示了应该在左侧的内容,而左侧显示了真正在右侧的内容。就像如果你切换它们,它会显示正确的图像。图像本身也是倾斜的(从左上角到右下角,与分割线的角度相同)“
我以前从未听说过这个,也不知道如何解决它。该应用程序是一个隐藏对象游戏,它使用了所有绘图,因为我在制作这个游戏时canvas
并不知道。OpenGL ES
基本上,它有两个bitmaps
,
屏幕尺寸,
1680x1050。
它将一大块从大块绘制到小块上,然后在上面绘制所有隐藏的对象,然后将其显示到屏幕上。
我完全不明白它怎么会搞砸。它将屏幕大小的图像绘制到屏幕上,据我所知,它不会发生在任何其他手机上。
有任何想法吗?它不会强制关闭,所以我没有堆栈跟踪