Bonjour,
Je me suis mis aux joies de la programmation Android et ai publié ma première application. A présent, je veux ajouter un bandeau de publicité AdMobs dans l'application, ce qui n'est pas trop compliqué, car il y a de nombreux tutos.
Le problème est que le bandeau, situé en bas de l'écran, disparaît dès que le clavier apparaît (car il y a des EditView) et ne revient plus ! Le message d'avertissement du logcat dit que l'AdView n'a plus assez de place pour afficher la publicité, logique au moment où le clavier prend l'écran me direz-vous. Sauf qu'elle ne se raffiche plus du tout.
Le contenu de mon fichier layout/main.xml est le suivant :
Comme vous le voyez, l'interface est très minimaliste. Mais peut-être que je m'y prend mal, j'ai déjà eu une peine de chien à créer un emplacement libre pour placer la publicité. Sûrement qu'il me faudrait utiliser autre chose qu'un LinearLayout ou agencer les éléments différemment...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="5dp" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/logo" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/vorname" /> <EditText android:id="@+id/vorname" android:inputType="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/vorname" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/name" /> <EditText android:id="@+id/name" android:inputType="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/name" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/maiden" /> <EditText android:id="@+id/maiden" android:inputType="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/maiden" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/birthCity" /> <EditText android:id="@+id/birthcity" android:inputType="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/birthCity" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="2dp" android:gravity="center" > <Button android:id="@+id/buttonResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btnResult" /> <Button android:id="@+id/buttonReset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btnReset" /> </LinearLayout> <TextView android:id="@+id/textViewRank" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textStyle="bold" android:paddingTop="2dp" android:text="" /> <TextView android:id="@+id/textViewResult" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="" android:textSize="30sp" android:textStyle="bold" /> <com.google.ads.AdView xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:id="@+id/adview" android:gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" ads:adUnitId="SECRET" ads:adSize="BANNER" /> <!-- ads:loadAdOnCreate="true" --> </LinearLayout>
Bref, le code suivant se trouve dans le OnCreate() de l'application :
Je tiens à préciser une dernière chose : j'ai débuté le projet en visant le SDK d'Android 2.1 et suivants. Ce que j'ai remarqué après coup, c'est qu'AdMobs requiert Android 3.2 et plus. Pour ne pas recommencer le projet et voulant garder les utilisateurs sur les version ultérieures - et ils sont nombreux -, j'ai changé la propriété suivante dans le fichier MANIFEST :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Look up the AdView as a resource and load a request. AdView adView = (AdView)this.findViewById(R.id.adview); AdRequest request = new AdRequest(); request.addTestDevice(AdRequest.TEST_EMULATOR); adView.loadAd(new AdRequest());
La version 7 correspond à Android 2.1. Je doute que ça puisse poser problème étant donné que AdMobs le recommande sur son blog officiel, mais je tenais à prévenir, sait-on jamais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <uses-sdk android:minSdkVersion="7" />
Est-ce que quelqu'un peut m'aider ? Peut-être n'est-ce juste qu'un problème de placement.
Partager