Diseño de interfaces

Para que en la aplicación XMLParser, los datos extraídos de los nodos xml sean de fácil visualización por parte del usuario, hemos decidido usar un ListView.

A continuación detallamos cómo hemos diseñado los layout asociados.

  1. listado_resultado.xml se corresponde con la clase Resultado_parsear. En dicho layout tenemos la siguiente estructura:
    • FrameLayout principal encargado de albergar el resto de los elmentos
      • LinearLayout definido con orientación horizontal donde se encuentra una cadena de texto en la cual aparece un mensaje de error en caso de problemas en la lectura del xml
      • ListView donde se muestran los nodos extraídos del xml. Se trata de una base que luego será extendida y definida en el layout listado_annexo.xml
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/verdeazulado" >
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >
    
                <TextView
                    android:id="@+id/Cadenaresultado"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="" />
            </LinearLayout>
    
            <ListView
                android:id="@+id/ListadoProductos"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </ListView>
    
    </FrameLayout>
    

     
    En la vista de Outline podemos ver la estructura diseñada de una manera sencilla
    outline_interfaz
     
    La diferencia entre el parámetro match_parent y wrap_content es la siguiente:

    • match_parent se usa cuando queremos que la vista (view) sea tan grande como la del padre. Esta propiedad también puede indicarse con fill_parent
    • wrap_content se usa cuando queremos que la vista (view) sea los suficientemente grande como para albergar su contenido. Es por tanto un tamaño relativo
  2. listado_annexo.xml se corresponde con el layout que la clase Adaptador_xml completará. La siguiente imagen muestra su estructura:
    outline_interfaz2

    • LinearLayout principal el cual alberga el resto de los elementos
      • LinearLayout definido con orientación horizontal el cual tiene como hijos una imagen y un segundo LinearLayout
        • ImageView encargado de albergar el icono asociado al producto
        • LinearLayout con orientación vertical en el cual se mostrarán las características del producto
          • TextView asociado al nombre del producto. Lo definimos con estilo negrita y un tamaño de 20 sp
          • TextView asociado a la cantidad de producto. Lo definimoc con estilo normal y un tamaño de 12 sp
          • TextView asociado al precio del producto. Lo definimos con estilo cursiva y un tamaño de 16 sp
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/verdeazulado"
        android:orientation="vertical" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/icono"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_marginLeft="4dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:src="@drawable/vacio" >
            </ImageView>
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
    
                <TextView
                    android:id="@+id/TituloProducto"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="20sp"
                    android:textStyle="bold" />
    
                <TextView
                    android:id="@+id/SubTituloCantidad"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="12sp"
                    android:textStyle="normal" />
    
                <TextView
                    android:id="@+id/SubTituloPrecio"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"
                    android:textStyle="italic" />
            </LinearLayout>
        </LinearLayout>
    
    </LinearLayout>
    

    NOTA: ¿Cuándo usamos sp y cuando dp?

mónica