问题标签 [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 回答
507 浏览

android - Android 自定义视图未正确绘制

我有一个基于 Android Gallery 视图的自定义小部件。它被稍微定制为从视图左侧无间隙地显示元素并将所需的事件传递给我的侦听器。

在第一个视图布局上,一切都很完美。但是,当我暂停并恢复活动时,视图会冻结。这是可见的,我可以看到 OnTouch() 事件处理程序正在工作,调整了视图位置,但图片没有改变。Gallery 小部件的 OnDraw() 方法根本没有被调用!我在这个布局中有另一个小部件(一个滑动抽屉),只要我几乎不移动抽屉,一切都会重新开始正常工作。

我完全不知道如何解决这个问题。尝试了不同的方法来强制 OnDraw() 方法,但它只是不起作用。

有任何想法吗?

谢谢

0 投票
2 回答
2235 浏览

android - Android 覆盖 onDraw() 问题

我有一个小问题是我到目前为止的代码:

和 main.xml 文件:

当我尝试在 onDraw() 函数中设置文本时,应用程序崩溃了,我做错了什么?

0 投票
2 回答
1012 浏览

android - onDraw() 中的 EditText

我知道如何添加 EditText 但不在 onDraw() 函数中。

上面的不起作用,下面的也不起作用:

那么我该怎么做呢?我基本上想添加一个可编辑的文本框,但因为我没有使用:

它搞砸了。有什么建议么?

我试过了:

但它仍然不起作用我做错了什么?

0 投票
1 回答
2025 浏览

android - 动画 onDraw() 部分

我有以下课程:

我的 GuageAnimation 类如下:

所以基本上这会根据弧形方程一次裁剪一个圆形图像。我想显示一个动画,比如圆圈的所有部分都被填充(因此显示每个剪辑的路径来演示一个正在构建的圆圈)。所以我正在考虑做一个for循环,如:

但这不起作用,它只是在 i=100 时得出最终结果,有人知道我该怎么做吗?

0 投票
0 回答
605 浏览

android - FrameLayout 中的冗余 onDraw() 调用

我的 xml 中有以下布局结构:

MyEntireView是一个地图(一个可绘制的)并MyDetailedView在其顶部弹出onTouch()并且仅包含整个地图的某一部分(也是可绘制的),它更详细地显示了用户在整个地图上触摸的区域MyEntireView

MyDetailedView显示时——即它的setVisibility(View.VISIBLE)——顶部会出现一些透明形状(还有一些位图)并定期重绘(例如,1 秒间隔)。这些形状是作为 的子项动态添加的,@+id/focusedlayout因为它们的数量总是不同的,并且它们的位置与详细的地图图片相关。

问题是每次更新都会被处理多次。每次更新一个形状,然后调用 MyEntireView's onDraw(),调用 MyDetailedView's onDraw(),然后再次调用这两个。只有在此之后,形状本身才会失效。

结果,此行为使形状闪烁,因为MyDetailedView重绘和隐藏形状大约 10 毫秒。

我可能忽略了一些简单的逻辑,但是如果有一种方法可以强制 ViewGroup 的一个视图无效(),我真的无法理解。

或者也许有一个替代结构/布局可以用来满足我的目的?

非常感谢!

PS 整个代码放在这里相当大,但我愿意根据要求插入任何部分

0 投票
1 回答
5592 浏览

android - OnDraw() 未触发,surfaceView 中未绘制任何内容 - Android

你好!我在水平滚动视图中有一个 surfaceView,我想用 onDraw() 调用填充图像。但是,没有绘制任何内容。我有一个类,其中绘图是从线程 CanvasThread 完成的。

我试图改变

synchronized (_surfaceHolder) { _panel.postInvalidate(); }

我还尝试添加调用 setWillNotDraw(false) 没有运气:

这似乎是一个常见问题,但我遇到的解决方案都没有为我工作。

谢谢!

0 投票
1 回答
419 浏览

android - 如何使用 OnDraw 从线程或绘制类调用 DataHelper?

抱歉标题简洁。我有一个 Android 应用程序,我在其中绘制了一个在 CanvasThread 上运行的类,以远离主 GUI 线程。但是现在,当我想根据从查询到 DataHelper 类的数据绘制矩形时。当我想实例化 DataHelper 时,DataHelper dh = new DataHelper(this);我收到抱怨说我需要 DataHelper 中的另一个构造函数,它将 PanelChart 作为参数而不是 Context。为什么是这样?

这是我的 PanelChart 类:

获取数据(dh);是从我想调用调用 DataHelper 并检索绘制所需信息的方法的地方。

我应该在 DataHelper 中创建另一个构造函数吗?我应该在另一个类中进行查询并将其发送到我的 PanelChart 类吗?

谢谢!

0 投票
1 回答
3650 浏览

android - android surfaceview onDraw vs thread.onDraw

安卓游戏用什么更好:

  • aSurfaceView带有渲染线程

    或者

  • aSurfaceView带有调用SurfaceView函数的线程doDraw()

谢谢。

0 投票
1 回答
3361 浏览

android - 如何在 Android 中将 int 传递给我的 onDraw(Canvas canvas)?

我使用surfaceview在Android中绘制饼图。为了知道饼图应该有多大,我需要将参数传递给 onDraw() 方法。我怎样才能做到这一点?在 onDraw() 内部,我对获取正确数据的 datahelper-class 进行查询。

我试图从 onDraw 调用一个 Activity 中的静态函数,该函数返回一个整数。但我想要一些更动态的东西,所以我可以将我需要的整数从 Activity 发送到 onDraw 并以饼图的形式获得结果。

有什么建议么?

0 投票
1 回答
3647 浏览

android - 在Android中绘制带有空格的矩形

我想在 Android 中绘制五个矩形条。我有矩形,但现在我希望它们分开一点。

我希望它们在底部对齐,并且它们之间的距离相同。

我尝试过使用 offset、offsetTo、translate,但找不到使用它们的逻辑。我希望他们都从不同的位置开始,就像他们向右移动 35 度倾角并且都是 30 度倾角宽。虽然我在左边添加了 35,但它们仍然来自同一个位置。