2012-03-24 6 views
1

admobから広告の正しい位置を設定する際に問題があります。私は、実際のデバイス(HTC野火)を設定し、向きを変えたときに問題が発生Androidのadmobビューセットは、向きに関係なく中心に設定されています

adView = new AdView(this, AdSize.BANNER, AD_UNIT_ID); 
LinearLayout layout = (LinearLayout)findViewById(R.id.main_layout_ads); 
adView.setGravity(Gravity.CENTER_HORIZONTAL); 
layout.addView(adView, 0); 
adView.loadAd(new AdRequest()); 

を次のように私はこの広告

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/main_layout_ads"> 
</LinearLayout> 

と定義された広告のための特別なレイアウトを設定しました。それに応じてすべてのアプリが変更されますが、広告は左上に表示されます。

誰でも私にそれを達成する手掛かりを与えることができますか?

答えて

1

重力= "水平"

OR

はRelativeLayoutの代わりのLinearLayoutにAdMobの図を入れてみてください追加/変更してみてください。 この例では、コードによってAdMobビューが追加されています。それは私のために働いた!

 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 

     RelativeLayout layout = (RelativeLayout)findViewById(R.id.ad_layout_blank); // this is the RelativeLayout 
     layout.setGravity(Gravity.CENTER_HORIZONTAL); 
     layout.addView(adView, layoutParams); 
     layout.invalidate(); 

XMLレイアウト:

 <RelativeLayout android:id="@+id/ad_layout_blank" 
      android:layout_width="fill_parent" android:layout_height="50dp" 
      android:layout_gravity="center_horizontal" 
      android:gravity="center_horizontal" 
      android:visibility="visible" 
     /> 
+0

千人。それは正しい方法で働いた。相対レイアウトが仕事と直線レイアウトをなぜ行うのは本当に分かりませんが、それだけです。 – user989501

+0

あなたは大歓迎です!ですので、回答を受け入れてください。乾杯 – Lisitso

0

は、だからあなたは知っている、問題は、あなたがのLinearLayoutにlayout_gravity、およびAdViewに重力を設定するということでした。

違いは、layout_gravityは親内部のビュー自体のためであり、重力はレイアウト内の子要素のためのものです。

要約すると、LinearLayoutにgravity = "center_horizo​​ntal"を使用した場合、またはAdView LinearLayout.LayoutParamsに与えた場合、レイアウトパラメータの重力をAdViewのcenter_horizo​​ntal(XMLのlayout_gravityに相当)に設定すると、 。しかし、それらは後ろ向きに両方持っています。

これは意味がありました。何かを中心にするために相対レイアウトは必要ありません。