2010-05-13 5 views
2

Je suis encore nouveau sur android et j'ai du mal à créer une mise en page avec deux arrière-plans qui correspondent à la direction x mais pas y.Activité Android avec plusieurs arrière-plans répétitifs

Je suis moqué ce que je vous suis en train de créer ici ...

http://img153.imageshack.us/img153/6008/cnbackground.png

Ainsi, la partie supérieure répète horizontalement, puis il y a une section creen plat au milieu où je centre mon contenu, alors il y a de l'herbe qui se répète horizontalement le long du fond.

Quelqu'un at-il essayé de faire quelque chose comme ça avant?

Jon

Répondre

7

Voici un bon tutoriel simple sur la partie de l'image d'arrière-plan répété:

http://androidblogger.blogspot.com/2009/01/how-to-have-tiled-background-cont.html

En ce qui concerne la mise en page, je vais avec un RelativeLayout comme ma principale mise en page de parent, et alors vous aurez trois sous-dispositions pour représenter les sections supérieure, intermédiaire et inférieure. Utilisez android: layout_alignParentTop sur la mise en page supérieure, android: layout_alignParentBottom sur le fond, et la mise en page de contenu intermédiaire devrait avoir les attributs android: layout_above et android: layout_below mis à la @ + id du bas et du haut (respectivement).

+0

je l'avais espéré pouvoir simplement ajouter 2 fonds à l'activité principale, sans avoir à diviser l'écran en fait 3 mais je devine que vous ne pouvez avoir un attribut android: arrière-plan sur une étiquette. En outre, cet article mentionne seulement 3 tileModes répéter, miroir, ou pince et ne dit pas comment obtenir quelque chose à carreau seulement horizontalement. En css, je le ferais en mettant {background-repeat: repeat-x;} – jonhobbs

+0

Oui ... mais ce n'est pas html/css, donc vous devez pirater les choses que vous attendez d'être là qui ne sont pas . Puisque vous ne pouvez pas le faire via repeat-x, je ferais en sorte que les layouts haut/bas aient un layout_height de wrap_content, et leur donnerait un ImageView enfant au lieu d'un background. Le src de ImageView peut être votre @drawable qui utilise l'élément bitmap avec tileMode = repeat. De cette façon, tout reste dynamique de toute façon (ce qui est clairement l'intention des dieux Android) – Rich

0

Vous pouvez imiter repeat-x en utilisant une liste de calques en tant que dessinable. Vous collez l'image bitmap à la fois x et y, puis utilisez une forme solide décalée pour remplir les images y répétées. N'est pas parfait, mais fera le travail.

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item> 
    <bitmap 
     android:src="@drawable/icon" 
     android:tileMode="repeat" /> 
</item> 
<item android:top="60dp"> 
    <shape > 
    <solid android:color="#FF000000" /> 
    </shape> 
</item> 
</layer-list>