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