1

アプリでバナー広告を保持するために使用される透明なレイアウトがあります。レイアウトは常にゲーム エリアの上に表示されますが、広告はたまにしか表示されません。コードは次のように機能します。

transparent_linearlayout_to_hold_banner.setBackgroundColor(Color.TRANSPARENT);   
game_frame_layout.addView(transparent_linearlayout_to_hold_banner);
setContentView(game_frame_layout);

広告を表示したいときは、

transparent_linearlayout_to_hold_banner.addView(adView);

広告を消したいときは

transparent_linearlayout_to_hold_banner.removeView(adView);

これは私のGalaxy Sで完璧に動作します!! 4.0.3 を使用していますが、2.3 の [Galaxy] タブでは、追加が表示されるとすぐに transparent_linearlayout_to_hold_banner が黒くなり、広告が削除されても永遠に黒のままです。

何が起こっているのですか?...そしてそれを修正する方法は?

編集:いくつかの実験の後、レイアウトの色は変更されていませんが、アルファチャンネルは変更されていることがわかりました。私の推測では、バナー広告システムの SDK が何らかの関数を呼び出して、バナー自体が透明ではないことを確認してから (OS のバージョンによっては)、親レイアウトを作成するという副作用が発生している可能性があります。不透明。

4

4 に答える 4

0

admobを使用している場合は、最新の6.0ライブラリを試してください。広告の外観を制御する上でいくつかの改善があります(私が見ることができるように) 。ベストプラクティス:広告の色の指定で説明されている属性にもっと注意を払っているようです。以前のリリースのライブラリでも同様の問題が発生しました。ただし、アルファチャネルは許可されていないため、広告の透明な背景を指定することはできませんが、問題は解決する可能性があります。

于 2012-06-12T07:59:52.527 に答える
0

いくつかのアイデア:

背景を lineraLayout に設定する行を単純に削除できますか:

transparent_linearlayout_to_hold_banner.setBackgroundColor(Color.TRANSPARENT);   

?

また、 adView を削除して追加する代わりに、linearLayout (または adView ) の表示を切り替えることはできますか?

于 2012-06-15T11:40:07.260 に答える
0

動的にではなく、XML で透明にしたいレイアウトを作成してみてください。透明なアイテムを使用して動的に追加された ListView でこのような問題が発生しました。

ここにゲームがあるので、もちろん、私が提案したことはうまくいかないか、やりにくいかもしれませんが、FrameLayout を使用して、描画するレイアウトを配置し、その上に透明なレイアウトを配置できます。また、そのような場合、タッチは広告レイアウトに移動することに注意してください。防ぐことはできますが、ハックのようなものです(ちなみに一度やりました)。

これがうまくいくかどうかはわかりませんが、試してみてください。

于 2012-06-13T15:16:45.877 に答える
0

広告バナーを追加する前に、レイアウトを非透明にしてみてください。

広告を削除したい場合は、広告バナー ビューを削除し、レイアウトを再び透明にします。

広告を削除した後で、この行をもう一度追加してみてください。

transparent_linearlayout_to_hold_banner.setBackgroundColor(Color.TRANSPARENT);   
于 2012-06-07T17:12:41.947 に答える