LinearLayout Android et Images

Ok, je sais que cela ne peut pas être dur, mais je vais avoir un diable de temps avec elle.. je suis un inconditionnel de programmeur Java, mais très nouveau pour Android (ok, donc je suis en train de travailler sur mon premier test app encore...)

J'aimerais avoir 3 images sur l'écran, une "principale" de l'image que prend, disons, le haut de 75% de l'écran, puis deux petites images disposées horizontalement en dessous. (Pensez à une galerie, avec la main (en cours) de l'image affichée, un "précédent" icône de l'image ci-dessous sur la gauche, et un "à côté" de l'image de l'icône ci-dessous la principale sur la droite).

Je n'ai pas de grandes et de petites images, ils sont tous grands et je veux les afficher dans une échelle de la mode. Le problème est que peu importe ce que je fais, le "principal" de l'image prend beaucoup trop de place, telles que, le plus souvent, les images de fond ne sont pas du tout visibles.

Je me rends compte que je peux mettre l'image principale de la hauteur à un nombre spécifié de bain et qui a fonctionné, mais alors si mon application va à un appareil avec une densité différente, il va sembler maladroit. J'ai essayé de jouer avec android:layout_weight, mais avec pas de chance. J'ai pensé que si je mets le layout_weights l'égalité, il serait de rendre les vues de prendre la même proportion, mais la "main" de l'image juste domine toujours et les résultats dans les petites images étant découpé le bas ou poussé entièrement hors de l'écran.

Je me rends compte aussi que je pouvais probablement utiliser d'autres modèles, mais il semble si simple d'avoir de la racine mise en page verticale LinearLayout qui se compose d'une image et d'une horizontale LinearLayout qui se compose de 2 images. Quelque chose comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >

  <ImageView
    android:id="@+id/cbPicView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/cb1"
    android:layout_weight="1"
  />

  <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    >

    <ImageView
      android:id="@+id/cbPrevPicView"
      android:layout_width="50dip"
      android:layout_height="50dip"
      android:src="@drawable/cb4"
      android:layout_weight="1"
    />

    <ImageView
      android:id="@+id/cbNextPicView"
      android:layout_width="50dip"
      android:layout_height="50dip"
      android:src="@drawable/cb2"
      android:layout_weight="1"
    />
  </LinearLayout>
</LinearLayout>

Désolé pour la longueur d'essayer de fournir autant de détails que je peux. Merci!

  • essayez de régler les hauteurs de 0dip, mais de garder la layout_weight paramètre
  • Essayé de régler en premier ImageView (principale) de 0dip avec des poids de 1, et la deuxième LinearLayout à 0dip avec le poids 1. Maintenant, tout ce que j'obtiens est un écran noir quand je le lance?
  • Oups - de ma faute j'ai à la fois la largeur et la hauteur de 0dip, pas étonnant qu'ils n'étaient pas là.. Votre suggestion fonctionne! Merci beaucoup - pouvez-vous expliquer pourquoi cela fonctionne?
  • Excellent - maintenant, si j'ai mis le principal ImageView layout_weight à 3 et à l'intérieur LinearLayout à 1, j'obtiens le 75/25 effet je voulais trop! Merci Kevin!
  • je pense que c'est parce réglage du poids ou de la hauteur à 0 permet de poids pour remplacer
InformationsquelleAutor daroo | 2011-09-30