Aller au contenu

[HVGA/QVGA] Problèmes de Layout


agherschon

Recommended Posts

Bonjour, je travaille sur ma première application Android.

Le but est d'écouter une radio online précise. Je voudrais afficher un fond avec des éléments par dessus, à des endroits précis (titre de la chanson courante, nom du groupe, pochette de l'album de la chanson écoutée), et un bouton play/pause.

Ça marche très bien en HVGA :

oxydroid-high-res.png

Par contre sur un écran comme le HTC Tattoo, en QVGA, ça donne ça :

oxydroid-low-res.png

Comme vous le voyez, les éléments sont à chaque fois un peu trop décalés vers le bas. Pas de problèmes en largeur par contre.

Concernant la vue, j'utilise deux FrameLayout dans un AbsoluteLayout, c'est la manière que j'ai trouvé pour mixer le fait d'afficher des éléments sur un fond et préciser leurs positions exactes. Je n'utilise que des DIP comme unité, d'où ma totale incompréhension du problème.

<?xml version="1.0" encoding="utf-8"?>
   android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/AbsoluteLayout">

       android:layout_height="fill_parent" android:layout_x="0dip"
       android:layout_y="0dip" android:id="@+id/FrameLayoutBackground">

           android:layout_width="fill_parent" android:id="@+id/oxyradio"
           android:layout_x="0dip" android:layout_y="2dip" android:background="@drawable/background"
           android:adjustViewBounds="true">



       android:layout_height="fill_parent" android:layout_x="0dip"
       android:layout_y="0dip" android:id="@+id/FrameLayoutUI">

           android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
           android:id="@+id/AbsoluteLayoutUI">
               android:layout_height="wrap_content" android:id="@+id/songTitle"
               android:text="Song Title" android:textColor="@color/titleSongColor"
               android:textStyle="bold" android:typeface="sans" android:textSize="17dip"
               android:layout_x="35dip" android:layout_y="58dip">

               android:layout_height="wrap_content" android:id="@+id/groupName"
               android:layout_x="35dip" android:layout_y="85dip" android:text="Group Name"
               android:textColor="@color/groupNameColor" android:textStyle="bold"
               android:typeface="sans" android:textSize="17dip">


               android:layout_height="wrap_content" android:id="@+id/coverView"
               android:adjustViewBounds="true" android:cropToPadding="true"
               android:maxHeight="150dip" android:maxWidth="150dip"
               android:minHeight="150dip" android:minWidth="150dip"
               android:layout_x="85dip" android:layout_y="163dip">

               android:layout_height="wrap_content" android:id="@+id/PlayPauseButton"
               android:layout_x="128dip" android:layout_y="342dip"
               android:background="@drawable/play">




Merci d'avance pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

d'ailleur ça explique pourquoi les images sont plsu en fausse 3D sur Android 2....la fausse 3D est pas étirable ^^)

Euh ça n'a rien à voir ... les icônes du menu, du homescreen, etc. n'ont jamais été étirables (concept de 9-patches). Pour gérer les densités différentes il faut utiliser les dossier ldpi, mdpi et hdpi.

Lien vers le commentaire
Partager sur d’autres sites

les icônes en perspective.

Ah d'accord !!

Effectivement, je m'etais posé la question. Je me souviens d'un article de google qui indiquait comment faire leurs icones en perspective, avec l'angle qu'il fallait prendre, et tout plein de trucs bien compliqué... Pour que maintenant, ils fassent des betes icones 2D...

Effectivement, ca peut etre a cause des resolutions d'ecran....

Lien vers le commentaire
Partager sur d’autres sites

enfin mon idée est un peu conne parce que les icones des applis sont pas 9patch.

par contre si dans un futur proche on nous oblige à faire des 9patch...pensez à moi ;)

Une telle obligation limiterait énormément la création ... Le concept de 9-patchs est extrêmement puissant mais ne permet pas non plus de tout faire ^^

Lien vers le commentaire
Partager sur d’autres sites

C'est un peu HS par rapport au topic d'origine mais je pense surtout qu'ils sont revenus en arrière sur les icônes en perspective parceque 80% des développeurs n'étaient pas capables de créer une icône en suivant cette règle.

Et par ailleurs, ça n'apportait pas forcément grand chose au look&feel...

C'est bien joli d'imposer des règles de design encore faut-il qu'elles soient applicables. :lol:

Lien vers le commentaire
Partager sur d’autres sites

Dans le sujet cette fois, l'impression du décallage vers le bas de tes éléments d'UI sont dûs au fait que la taille de ton image de fond est étirée pour remplir l'écran.

Sur un écran plus petit, l'image de fond est compressée en hauteur, tandis que les boutons et libellés gardent bien eux leur positionnement en dip.

Le fait que tu aies mis android:adjustViewBounds="true" ne change rien car :

- l'attribut android:background qui porte ton image de fond est en fait l'attribut "background" commun à toutes les Views.

- l'imageview que tu as déclarée n'est pas réellement utilisée en tant qu'ImageView, son attribut adjustViewBound serait appliqué par le système sur une image que tu aurais affectée via l'attribut android:src ou programmatiquement via setImage*()

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...