У меня есть баннер AdMob, и он отображается правильно, но он слишком мал. Это не соответствует ширине экрана. Это происходит как на эмуляторе, так и на реальных устройствах. Может ли кто-нибудь помочь мне решить эту проблему? XML-код:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/usernameLab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Username:"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="35px" />
<EditText
android:id="@+id/usernameField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName" />
<TextView
android:id="@+id/passwordLab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="35px" />
<EditText
android:id="@+id/passwordField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<Button
android:id="@+id/login"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Login" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Remember me?" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Parent Account?" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="124dp"
android:src="@drawable/cool" />
<LinearLayout
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="..."
ads:loadAdOnCreate="true"
/>
</LinearLayout>
</LinearLayout>
Согласно изображению, которое вы разместили, объявление отображается с разрешением 320 x 50 пикселей, а ваше общее разрешение составляет 480 x 800. Я собираюсь предположить, что плотность пикселей равна 1,0 (это будет абстрактная плотность ЖК-дисплея 160, установка под ваши свойства устройства AVD). Это необычная плотность. Подавляющее большинство телефонов имеют плотность пикселей 1,5 (абстрактная плотность LCD 240), что приводит к ширине экрана 320 dip, и с этой настройкой она должна отображаться должным образом.
Если вы хотите, чтобы ваше объявление всегда заполняло ширину экрана, есть два подхода. В Honeycomb и up (уровень API 11+) вы можете использовать setScaleX() и setScaleY() для его масштабирования. Вам нужно будет получить ширину экрана и масштабировать ее соответствующим образом. Для Gingerbread и раньше вам придется вычислять масштабирование. Я не знаю, какие варианты доступны там. Масштабирование приведет к некоторой пикселизации, и обычно люди предпочитают просто центрировать рекламу, а не растягивать ее.
TL; DR: Большинство людей увидят это хорошо, вы можете сосредоточить его или растянуть сами
Взгляните на это:
https://developers.google.com/mobile-ads-sdk/docs/android/intermediate
В большинстве случаев лучше всего использовать размер SMART_BANNER и позволить Admod SDK позаботиться о размере баннера, просто убедитесь, что вы оставили высоту не менее 90 пикселей для самого высокого баннера.
wrap_content
, установитеandroid:layout_width="match_parent"