{"id":204,"date":"2014-06-19T23:22:45","date_gmt":"2014-06-19T21:22:45","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=204"},"modified":"2014-06-19T23:23:13","modified_gmt":"2014-06-19T21:23:13","slug":"android-tutorial-1-gestire-un-banner","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/android-tutorial-1-gestire-un-banner\/","title":{"rendered":"ANDROID TUTORIAL &#8211; 1 &#8211; GESTIRE UN BANNER"},"content":{"rendered":"<p style=\"color: #0d293f; text-align: justify;\">Nell&#8217;articolo di oggi vedremo come gestire al meglio il banner pubblicitario all&#8217;interno della nostra app. Quello che vedremo ben si adatta anche a situazioni in cui si vuole che solo una parte dello scherma supporti lo scrolling.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Sulle modalit\u00e0 per integrare un banner, rimando al sito di\u00a0<a style=\"color: #2675b5;\" href=\"https:\/\/www.admob.com\/\">AdMob<\/a>, recentemente acquisito da Google, dove potete scaricare l&#8217;SDK da integrare.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">E&#8217; mio interesse mostrare le modalit\u00e0 per integrare il banner all&#8217;interno dell&#8217;app, in modo da rendere l&#8217;operazione facile e indolore.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\"><strong>Approccio Dichiarativo<\/strong><\/p>\n<p style=\"color: #0d293f; text-align: justify;\">E&#8217; possibile inserire direttamente il seguente blocco xml all&#8217;interno del nostro layout. Il parametro keywords deve essere valorizzato con l&#8217;ID Editore rilasciato da AdMob all&#8217;atto della creazione del profilo della nostra app.<\/p>\n<pre class=\"lang:default decode:true\">&lt;com.admob.android.ads.AdView\r\nandroid:id=\"@+id\/ad\"\r\nandroid:layout_width=\"fill_parent\"\r\nandroid:layout_height=\"wrap_content\"\r\napp:keywords=\"xxxxxxxxxxx\" \/&gt;<\/pre>\n<p>In questo modo alla visualizzazione del nostro layout verr\u00e0 anche visualizzato il banner. Con questo approccio, se vogliamo avere il banner in pi\u00f9 activity della nostra app, dobbiamo inserire il blocco in ogni layout relativo all&#8217;activity.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\"><strong>Approccio Programmatico<\/strong><\/p>\n<p style=\"color: #0d293f; text-align: justify;\">E&#8217; possibile gestire il banner programmaticamente, ovvero instanziare l&#8217;oggetto e configurarlo in uno dei metodi legati al ciclo di vita della nostra Activity, tipicamente il metodo onCreate.<\/p>\n<pre class=\"lang:default decode:true\">AdView adView = new AdView(this, AdSize.BANNER, Costanti.MY_AD_UNIT_ID);\r\nLinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);\r\nlayout.addView(adView);\r\nAdRequest request = new AdRequest();\r\nadView.loadAd(request);<\/pre>\n<p>Con questo approccio possiamo strutturare le nostre classi in modo da rendere trasparente per le nostre activity l&#8217;invocazione del banner, ad esempio tramite una activity astratta responsabile della gestione del banner, da cui ereditare le activity responsabili della logica della nostro app.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\"><strong>Tipici Problemi<\/strong><\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Il problema che si pu\u00f2 riscontrare \u00e8 la mancata visualizzazione del banner. Fortunamente i log di Android ci danno tutte le indicazioni sulle possibili cause. Un motivo pu\u00f2 essere il layout con spazio insufficiente per mostrare il banner e questo avviene tipicamente su dispositivi con display piccoli, dove abbiamo previsto di usare del padding. In questo caso l&#8217;errore che Android mostra \u00e8\u00a0Not enough space to show ad! Wants: &lt;320, 50&gt;, Has: &lt;270, 430&gt;. Il problema si risolve agganciando il nostro banner al layout con una dimensione sufficiente a contenere il banner.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Altro problema \u00e8 la posizione del banner, che pu\u00f2 essere infelice o nella posizione non attesa. Per assicurarci la posizione desiderata possiamo usare il RelativeLayout e posizionare il banner nella posizione desiderata. Nell&#8217;esempio di sotto ho posizionato il banner in basso rispetto al container e l&#8217;oggetto ScrollView al di sopra del banner. In questo modo garantiamo la visualizzazione del banner nella posizione desiderata.<\/p>\n<pre class=\"lang:default decode:true\">&lt;RelativeLayout \r\nxmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\u00a0 \u00a0 &gt;\r\n&lt;LinearLayout\u00a0android:layout_alignParentBottom=\"true\"\u00a0\/&gt;\r\n&lt;ScrollView android:layout_above=\"@id\/mainAdv\" &gt;\r\n&lt;\/RelativeLayout&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;articolo di oggi vedremo come gestire al meglio il banner pubblicitario all&#8217;interno della nostra app. Quello che vedremo ben si adatta anche a situazioni in cui si vuole che solo una parte dello scherma supporti lo scrolling. Sulle modalit\u00e0 per integrare un banner, rimando al sito di\u00a0AdMob, recentemente acquisito da Google, dove potete scaricare l&#8217;SDK &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/android-tutorial-1-gestire-un-banner\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">ANDROID TUTORIAL &#8211; 1 &#8211; GESTIRE UN BANNER<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[35],"tags":[36,38],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/204"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=204"}],"version-history":[{"count":2,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/204\/revisions"}],"predecessor-version":[{"id":206,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/204\/revisions\/206"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=204"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}