2009-11-06 4 views
1

Si je ne comprends pas un arrière-plan dans ma mise en page de racine alors tout rend comme je le pense:Y compris un fond dessinable foobars ma disposition dans Android. Idées pourquoi?

alt text http://dl.dropbox.com/u/299320/correct.png

Cependant, si j'ajouter une seule ligne en ajoutant dans un arrière-plan puis la mise en page va complètement détraqué:

alt text http://dl.dropbox.com/u/299320/foobared.png

le bit correspondant de la mise en page XML est:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width ="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingRight ="20dip" 
    android:paddingLeft ="20dip" 
    android:gravity  ="center_vertical" 
    android:background ="@drawable/main_background"> 

Tout à fait littéralement la seule différence entre les deux captures d'écran ci-dessus est l'inclusion de android:background="@drawable/main_background". Je vais vous donner un cookie si vous pouvez m'aider ici :)

+1

Les captures d'écran sont cassés. –

+0

Pour moi, il semble que lors de l'exécution, ils semblent corrects. La mise en page semble mauvaise seulement dans le concepteur. –

Répondre

3

En ce qui concerne la raison pour laquelle vous expérimentez ce que vous êtes en arrière-plan, il se peut que votre image d'arrière-plan soit prise par la gravité, mais c'est juste une supposition.

Pour contourner ce problème, enveloppez votre objet entier dans un FrameLayout. Faire le premier enfant du FrameLayout être un ImageView avec votre fond. Faites en sorte que le deuxième enfant du FrameLayout soit votre attribut existant LinearLayout (sans android:background). Puisque FrameLayout et RelativeLayout permettent l'empilement, votre LinearLayout apparaîtra au-dessus de l'image et devrait vous donner l'effet visuel que vous recherchez.

+0

L'homme, c'est ennuyeux. J'aurais aimé savoir pourquoi ce que je faisais ne fonctionnait pas. Votre solution a fonctionné, merci. –

+0

J'ai eu un problème similaire et j'ai passé quelques heures à me demander pourquoi. Jamais trouvé pourquoi les images de fond font cela. –