いくつかのスレッドを実行しているサーフェスビューがあります。それらのスレッドの 1 つは、サーフェスビュー キャンバス (一種のアニメーション) に描画しています。ここで、1 つの画像 (透明) を「オーバーレイ」して、表面ビューの上に表示したいと思います。これは、HTC ヘルプ (オーバーレイ ヘルプ テキスト) に似たものになります。スレッドの 1 つは、要求されたときにこのオーバーレイを設定します (また、要求されたときにクリアします)。これを行う最も簡単な方法は何ですか?別の ImageView を使用してフレームレイアウトに surfaceview を配置する必要がありますか? これをプログラムで行う必要があります。
質問する
815 次
2 に答える
0
ImageViewコンポーネントを追加し、必要に応じてサーフェススレッドから「オーバーレイ」画像を設定/削除しました。それは機能しますが、「タイミング」ソリューションは好きではありません。このオーバーレイは遅れてポップアップし、しばらくすると自動的に削除されます。
私がしたことは:
表面の糸のどこか:
if (condition) {
postDelayed(new Runnable() {
// set overlay image
postDelayed(new Runnable(){
// remove overlay image
}, hideDelay);
}, showDelay);
}
このネストされたpostDelayedは好きではありません。スリープを使用してみましたが、期待どおりに機能しません=>オーバーレイimageviewは、スリープがなくなるまで無効になりません(手動でinvalideを呼び出してみました)。
これについて何か考えはありますか?
于 2013-03-21T13:03:14.363 に答える
0
この1つのリンクの回答を確認してください..これがお役に立てば幸いです。もう 1 つの方法は、ビューまたは SurfaceView に基づいて独自のコンポーネントを作成することですが、より高度です。
于 2013-03-20T16:00:52.310 に答える