2010-08-18 17 views
2

J'essaie de définir une image de 9 patchs comme l'arrière-plan de l'une de mes activités, mais elle s'étend sans le moindre effort pour que tout soit bizarre. J'ai utilisé draw9patch pour le créer et ajouté un pixel en bas à gauche et un pixel en haut à droite. Je l'enregistre ensuite dans mon répertoire drawables sous intro_bg.9.png. Je veux étirer le fond et étirer le côté droit, mais seulement si c'est le cas. Si ce n'est pas le cas, je voudrais qu'il reste intact.Étirement de 9 patchs quand il ne faut pas s'étirer, Android

Lorsque je l'ai défini comme arrière-plan de la mise en page parente, il l'étire horizontalement et verticalement et il n'affiche même pas mes boutons lorsque je l'exécute sur mon droïde.

J'ai fait les recherches sur Google, mais il n'y a pas de bonnes informations sur comment faire fonctionner quelque chose comme ça. Qu'est-ce que je rate?

J'ai aussi essayé d'autres configurations, y compris en utilisant les côtés de rembourrage (à droite et en bas) mais cela a donné les mêmes résultats.

Merci

code pour définir comme arrière-plan:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/intro_bg" 
> 

On dirait:
alt text

devrait ressembler à:
alt text

+2

vous devriez poster 9patch image et peut-être une capture d'écran, le rend plus facile à comprendre. et votre partie pertinente du code de mise en page XML. –

+0

Screenshot bientôt disponible – Mike

+0

Quelles sont les dimensions de cette image? J'ai l'impression que c'est trop gros. –

Répondre

3

Votre image est tout simplement trop grand pour adapter la mise en page. Si vous voulez qu'il soit contracté, vous devez peindre une ligne sur les bordures supérieure et gauche - la ligne marque la région qui sera contractée ou étirée. Je suppose que vous avez juste des points sur les frontières.

La deuxième option consiste à définir l'image comme arrière-plan d'activité, puis elle sera insérée dans l'écran. Pour ce faire ajouter à styles.xml res/valeurs dossier:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="ExampleTheme" parent="android:Theme"> 
    <item name="android:windowBackground">@drawable/intro_bg</item> 
</style> 
</resources> 

Appliquez ensuite le thème à votre activité au manifeste. L'intro_bg drawable n'a même pas besoin d'être un patch 9.

+0

le rendant plus petit n'a pas fonctionné. Comment est-ce que je pourrais définir le contexte de mon activité? – Mike

+0

Je n'ai pas mentionné pour le rendre plus petit. Dessinez simplement des lignes plus longues sur les bords supérieur et gauche de neuf-patch. –

+0

Voir la mise à jour sur la définition d'un arrière-plan pour l'activité. –