问题标签 [ondraw]

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 投票
1 回答
708 浏览

android - Android Surfaceview和不同分辨率的问题

我遇到了一个奇怪的问题,我无法设法解决它。

设想

  • 我有一个 Surfaceview,我在它的不同位置绘制了一些图像。首先,我为 l/m/hdip 可绘制对象创建了文件夹,一切正常。然后我决定只制作一个可绘制的文件夹,并让 Android 负责调整大小。所以我删除了 drawable-mdip 和 drawable-ldip 文件夹,我将所有 drawable-hdip 内容移动到 drawable 文件夹并运行应用程序。

问题

  • 当资源在 drawable-hdip 中时,surfaceview 按预期处理图像。一切看起来都很好而且很到位。将 hdip 资源移动到可绘制后,surfaceview 上的所有内容都超大,就像所有内容都处于 130% 缩放。我找不到解决此问题的方法,因为我找不到它进行此缩放的原因。测试设备是 Galaxy S,所以看起来应该不错。

非常感谢任何答案。

0 投票
2 回答
520 浏览

android - Android onDraw() 方法和添加图片

我有一个视图,我已经为动画目的覆盖了 onDraw() 函数。但是,有些图像我希望在视图中保持静态,我是否也必须在 onDraw() 函数中绘制这些图像,或者我可以通过 XML 或其他模板应用这些图像?

0 投票
1 回答
536 浏览

android - 如何在 Android 中使用 OnDraw 方法中的警报对话框

嗨,我想在游戏中使用 OnDraw 方法中的警告对话框,该游戏由线程一次又一次地调用。我无法做到这一点。屏幕开始闪烁。警告框中没有错误,因为它在 OnDraw 方法之外工作。如果有人愿意帮助我,我们将不胜感激。我想在再次调用 n 的 OnDraw 方法中使用警告框。

感谢大家。

0 投票
2 回答
2727 浏览

android - Android SurfaceView onDraw 问题

我的 SurfaceView 的 onDraw 方法绘制的是由屏幕上的 TouchEvents 确定的路径的 LinkedList。我想添加一个撤消功能,从 LinkedList 中删除最后一个路径节点。当按下按钮时,路径会从列表中删除,但 SurfaceView 不会更新,直到我再次按下撤消按钮或触摸屏幕。

谢谢,埃里克

0 投票
1 回答
5530 浏览

android - 绘制多边形并填充它

我喜欢做的是绘制一个多边形,完成后我想用半透明的颜色填充多边形。

我可以使用 canvas.drawLine(...) 绘制多边形,但无法填充它。

我知道在 java-awt 中这很容易,但我在 Android 中找不到它。

任何帮助表示赞赏。

谢谢。

0 投票
2 回答
679 浏览

java - 画布绘制太慢

我正在开发一个允许单步播放视频帧(位图)的应用程序。它还可以一个接一个地播放帧,就好像您实际上正在观看由这些帧组成的视频一样。

我有一个 ImageView 一次显示一个位图。我遇到的问题是将图像绘制到 ImageView(我们只是在调用 super.onDraw())大约需要 30 毫秒。由于帧需要以原始帧速率播放,这是一个问题。还有其他一些操作也在进行,这些操作也减慢了这个过程,但绘图肯定没有帮助。

我正在研究 OpenGL ES,但似乎并非所有设备都支持非二次幂图像,所以这不起作用。图像的尺寸是设备记录的视频分辨率的一半,因为我以一半大小对它们进行采样,并且几乎可以保证永远不会是二次方图像。

有什么方法可以加快速度,以便绘图更快?

0 投票
1 回答
1377 浏览

android - Android:TextView onDraw() 只有一次?

我在 onDraw() 方法中使用 TextPaint 创建了一个自定义 TextView。但是,这给我的应用程序带来了严重的问题。我的意思是表现明智。

onDraw() 方法被一遍又一遍地调用。但我只想让它画一次:(

我尝试使用 setDrawingCacheEnabled(true); 但那里没有效果。

在主布局中还有一个带有 textviews 的 viewflipper 会自动旋转,这会导致所有内容都重绘吗?

任何人都可以在这里给我一些指示吗?

0 投票
1 回答
1129 浏览

android - Android - 将焦点放在我在 onDraw 方法中绘制的圆圈上

安卓问题。我制作了一个自定义 ImageView 类,在其中我有一个 onDraw 方法,它将在特定像素上绘制一个圆圈(使用画布)。当我使用这个自定义图像视图并打开我的图像时,我想将焦点设置在我绘制的圆圈上(例如,就像谷歌地图对您当前的位置所做的那样。焦点设置为您当前的点)

0 投票
1 回答
876 浏览

java - 在Android中查看整个屏幕-如何告诉画布尊重视图的限制?

编辑:

好的,所以我已经将视图的长度和宽度扩展到屏幕的很大一部分,我可以假设 onDraw() 方法没有限制视图,因为它可以通过所有屏幕认为。所以现在的问题是如何告诉画布尊重视图的限制?任何想法,也许强制一些参数?

编辑结束

我已经实现了一些用于绘制自定义视图的代码,但是画布是空白的。我确信它正在运行,因为我已经添加了日志跟踪,并且这些都显示得很好。

如何正确实现自定义视图的绘图,以及我在下面所做的有什么问题?

我在这样的布局中的自定义视图:

customview 被称为:pis.core.JMI_VistaMenuIn。在预览中,我得到了一个“java.lang.UnsupportedOperationException”,但是当.apk 被加载时,xml 布局可以工作。

这是我的自定义视图的代码。正如我之前所说,包含日志记录的行被击中,但我的画布是空白的:

0 投票
1 回答
13762 浏览

android - 在自定义视图中设置可绘制边界的位置

概述:我正在尝试创建一些简单的形状(正方形和三角形),然后将它们用作活动的背景图像。形状的大小取决于屏幕的宽度和高度。问题是,即使我设置了这些形状的边界,它们都被绘制得尽可能大,同时仍然适合屏幕。

详细信息:我正在尝试在名为 ControlsOverlayView.java 的覆盖视图类中创建一个非常简单的背景图像,上面有几个形状。我正在计算画布的大小,然后在 onDraw 方法中调用我的绘画方法,因为这是我第一次知道画布有多大的时候。我通过逐步检查每个形状具有正确边界的代码进行了双重检查,但问题是没有一个形状遵守它们的边界,并且每个形状都尽可能大地绘制在屏幕上。

}

该活动称为 ControlsOverlayActivity.java,如下所示:

xml 文件名为 controls_overlay.xml,如下所示:

我真的被困在这里,我想知道是否从 onDraw() 方法调用调整大小和绘制不是最好的地方,但是我不确定我还能在哪里做,因为我需要知道高度和宽度的屏幕。我也尝试过移动对 super.onDraw() 的调用,这并没有改变任何东西。