2015-02-04 2 views
0

У меня есть макет и атрибут:андроид размера AdMob об ошибке Размеров: атрибут A «типа» требуется для <item>

объявление: adSize = «LARGE_BANNER»

Я хочу поставить его объявлений : adSize = «@ размыта ... тусклое имя»

, но он дает мне ошибку , например: FULL_BANNER он говорит что-то вроде полного баннера не существует, и он не компилируется.

Я попробовал теперь стили, но он не работает слишком:

<item name="ads:adSize">LEADERBOARD</item> 

это говорит об ошибке: атрибут A 'типа' требуется для

любой идеи?

+0

Вы можете достичь этого программно или использовать с помощью XML, используя значения в папке Рез. См. Мой ответ. BTW, вы должны использовать admob через библиотеку игровых сервисов google. У вас будет доступ к таким методам, как adView # setAdSize (размер), что упростило бы работу –

ответ

1

Вы можете динамически загружать размер объявления на основе разрешения экрана, программно.

В классе вашей деятельности в OnCreate():

 AdSize adSize = AdSize.SMART_BANNER; 

     DisplayMetrics dm = getResources().getDisplayMetrics(); 

     double density = dm.density * 160; 
     double x = Math.pow(dm.widthPixels/density, 2); 
     double y = Math.pow(dm.heightPixels/density, 2); 
     double screenInches = Math.sqrt(x + y); 

     if (screenInches > 8) { // > 728 X 90 
      adSize = AdSize.IAB_LEADERBOARD; 
     } else if (screenInches > 6) { // > 468 X 60 
      adSize = AdSize.IAB_BANNER; 
     } else { // > 320 X 50 
      adSize = AdSize.BANNER; 
     } 

     LinearLayout adContainer = (LinearLayout) findViewById(R.id.your_parent_layout); 
     adView = new AdView(this, adsize, "xxxxxxxxxx"); 
     AdRequest adRequest = new AdRequest(); 
     adView.loadAd(adRequest); 

     // Place the ad view. 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
     adContainer.addView(adView, params); 

Если вы предпочитаете определение AdView в формате XML и ссылки на значения из values-sw600, values-sw720 .. папки можно определить ширину и высоту в dimens.xml:

В значениях/dimens.xml

<resources> 
     <!-- Default screen margins, per the Android Design guidelines. --> 
     <dimen name="admob_width">320dp</dimen> 
     <dimen name="admob_height">50dp</dimen> 
    </resources> 

Затем, в макете:

<com.google.ads.AdView 
    android:id="@+id/adView" 
    android:layout_width="@dimen/admob_width" 
    android:layout_height="@dimen/admob_height" 
    ads:adUnitId="your_unit_id" 
    ads:adSize="SMART_BANNER" 
    ads:loadAdOnCreate="true"/> 
+0

, спасибо за ответ, даже если это не ожидаемый результат, потому что admob отправляет вам разные рекламные объявления в зависимости от размера, выбранного в xml, если У меня размер баннеров и размер лидеров, они получат разные рекламные объявления, так что лучше –

Смежные вопросы