2012-04-15 10 views
15

¿Cómo crear una vista tipo estantería en Android que muestre varios libros en cualquier fila? Además, debe tener características horizontales y verticales, como la aplicación Moon + Reader.¿Cómo crear una vista tipo estantería en Android?

Puedo escribir una vista de estante que se mueva horizontalmente pero no funciona del todo. Usé un archivo xml para ver elementos que incluían imagen, texto y botón. Escribí una clase que se extiende AdapterView para crear un ListView personalizado al que llamé "shelf view". Lamentablemente, mi programa muestra una fila y no puedo usarla para varias filas.

enter image description here

+1

nos muestras lo que lograste hasta ahora? –

+0

Sí, maldición, solía un archivo xml para ver elementos que incluían imagen, texto y botón. Escribí una clase que amplía AdaptorView para crear una vista de lista personalizada que llamé: "vista de estantería". Lamentablemente, mi programa muestra una fila y no puedo usarla para varias filas. ¿Lo conseguiste? – azad

Respuesta

20

Última actualización: ahora, puedo detectar un nuevo camino para crear la plataforma de visión mejor que la solución anterior. He descrito en CodeProject

Por cierto, en esta aplicación utilicé dos clases:

  • HorizontalListView clase que amplíe la AdapterView. Se descargó de GitHub

  • La biblioteca de Quaere usa casi lo mismo que Linq2Object en .Net. Puede descargar here.


Abr 22 de '12:

Hay algunas maneras de implementar consulte la estantería que tiene dos características (horizontal & de desplazamiento vertical). Intento escribir un programa que pueda ejecutarse dinámicamente. Esta aplicación de muestra tiene un archivo XML y una clase showShelfView java.

Así se puede ver mi aplicación:

archivo XML principal: En primer lugar, Añadir siguiente código en Main.xml

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/sclView"> 
    <TableLayout 
      android:id="@+id/tblLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="0dp"> 
    </TableLayout> 
</ScrollView> 

showShelfView Clase: interior TableLayout añadir varios HorizontalScroll es igual con numero de filas También dentro de cualquier TableRow agregar imagen.

No se olvide de establecer una imagen de plataforma para el fondo de la fila:

enter image description here

public class showShelfView extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     int numRow = 4; 
     int numCol = 8; 

     TableLayout tblLayout = (TableLayout) findViewById(R.id.tblLayout); 

     for(int i = 0; i < numRow; i++) { 
      HorizontalScrollView HSV = new HorizontalScrollView(this); 
      HSV.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 

      TableRow tblRow = new TableRow(this); 
      tblRow.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
      tblRow.setBackgroundResource(R.drawable.bookshelf); 

      for(int j = 0; j < numCol; j++) { 
      ImageView imageView = new ImageView(this); 
       imageView.setImageResource(R.drawable.book1); 

       TextView textView = new TextView(this); 
       textView.setText("Java Tester"); 
       textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

       tblRow.addView(imageView,j); 
      } 

      HSV.addView(tblRow); 
      tblLayout.addView(HSV, i); 
     } 
    } 

} 
+0

+1 Muy útil. – Praveenkumar

+1

mi placer ;-) –

+0

@omidnaz no pude encontrar la Biblioteca de Quaere en el enlace especificado y la busqué en todas partes, pero aún no encontré la fuente .... ¿podría decirme dónde puedo conseguir esta biblioteca? .. –

Cuestiones relacionadas