Jump to content

[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 !

Link to comment
Share on other 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.

Link to comment
Share on other 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....

Link to comment
Share on other 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 ^^

Link to comment
Share on other 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:

Link to comment
Share on other 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*()

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...