我有一个表面视图,它正在运行几个线程。其中一个线程是在表面视图画布上绘制的-一种动画。现在我想“叠加”一张图片(透明的)--出现在surfaceview上面。这看起来类似于HTC帮助-覆盖帮助文本。其中一个线程将在请求时设置此覆盖(并在请求时将其清除)。做这件事最简单的方法是什么?我应该把ImageView和另一个ImageView放在一个框架布局中吗?我必须通过编程来做到这一点。
发布于 2013-03-21 00:00:52
检查此link上的答案。我希望这会对你有所帮助。另一种方法是创建您自己的组件,基于视图或基于SurfaceView,但它更高级。
发布于 2013-03-21 21:03:14
我添加了一个ImageView组件,并根据需要设置/删除表面线程中的"overlay“图像。它可以工作,但我不喜欢“定时”的解决方案-这个覆盖应该弹出一个延迟,并在一段时间后自动删除它。
我所做的是:
在表面线程中的某处:
if (condition) {
postDelayed(new Runnable() {
// set overlay image
postDelayed(new Runnable(){
// remove overlay image
}, hideDelay);
}, showDelay);
}我不喜欢这个嵌套的postDelayed。我试着使用睡眠,但它并不起作用,因为我期望=>覆盖图像视图在睡眠用完之前不会失效(也尝试手动调用invalide)。
对这个问题有什么想法吗?
https://stackoverflow.com/questions/15526084
复制相似问题