我有一个运行几个线程的表面视图。其中一个线程是在surfaceview 画布上绘图——一种动画。现在我想“覆盖”一个图像(透明) - 出现在表面视图上方。这看起来类似于 HTC 帮助 - 覆盖帮助文本。其中一个线程将在请求时设置此覆盖(并在请求时清除它)。最简单的方法是什么?我应该将surfaceview与另一个ImageView放在一个框架布局中吗?我必须以编程方式执行此操作。
问问题
815 次
2 回答
0
我添加了一个 ImageView 组件并根据需要从表面线程中设置/删除“覆盖”图像。它可以工作,但我不喜欢“定时”解决方案——这个叠加层应该会延迟弹出并在一段时间后自动将其删除。
我所做的是:
表面螺纹中的某处:
if (condition) {
postDelayed(new Runnable() {
// set overlay image
postDelayed(new Runnable(){
// remove overlay image
}, hideDelay);
}, showDelay);
}
我不喜欢这个嵌套的 postDelayed。我尝试使用睡眠,但它不起作用,因为我会预期 => 覆盖图像视图在睡眠用完之前不会失效(也尝试手动调用无效)。
对这个有什么想法吗?
于 2013-03-21T13:03:14.363 回答
0
检查这个链接上的答案..我希望这会有所帮助。另一种方法是创建自己的组件,可以基于 View 或基于 SurfaceView 但它更高级。
于 2013-03-20T16:00:52.310 回答