2011-01-11 5 views
0

私のアクティビティの最上位レイアウトはフレームレイアウトです。私はこのアプリケーションを完成させ、デバッグしてテストしました。それは私のg1と様々なエミュレータ上のすべての点で同じように動作します。しかし、2.1インチ以上の3.7インチディスプレイでは、直線レイアウトでパックされた一部の画像ビューはであり、定期的には表示されません。私は彼らがそこにいることを知っているので、あなたはアプリで効果的にそれらをタッチしてドラッグすることができます。だから私はどうにかして 彼らはアプリケーションの主なコンポーネントであるSurfaceViewの下で得たと仮定します。 SurfaceViewがLinearLayoutの前にxmlで宣言されていても、これは明らかです。ただし、LinearLayoutのImageViewsは、プログラムによってonCreate()の最後に追加されます。ImageViewsがFrameLayoutアクティビティで表示されないことがあります

Framelayoutは、フレームレイアウトの複数の子を表示する唯一の方法は、画面より小さくてお互いに離れて配置する方法です。

奇妙なことに、画像ビューが表示されることがあります。ランダムです。とにかく、私はframelayout.bringChildToFront(vを見る)とこれと戦うことを試みてきました。

誰かがそのような振る舞いにどのような洞察があるのだろうか、これらのイメージビューをコード化する必要があるのだろうか? この問題は、問題を解決するために、そして3.7対3.2インチのスクリーン2台の3.2インチ画面はどちらもhtcなので、ベンダーも同じようになるかもしれません)。

[編集]実際には、これは2.2の問題であり、画面サイズ(またはベンダー)の問題ではないと判断しました。 SurfaceView が含まれているframelayoutに追加されたImageViewがサーフェイスビューの上に表示されるようにすることはできません。私はそれぞれのonDraw()メソッドでいくつかのテストを実行し、imageviewsは 'visible'(0)で、drawdのアルファには何もしません。 [/編集]

洞察力は歓迎されます。

ケン・T.

答えて

0

私はSurfaceViewのdoDraw()メソッドでドロウアブルを描画しなければならなかった、と私はドロウアブルのファイル名を変更しなければなりませんでした。私はこれがどこかの悪質なコードの一例だと思います。私はImageViewsをスクラップし、私のタッチ処理コードを別の場所に移さなければなりませんでした。

関連する問題