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