2012-04-15 15 views
15

Come creare un ripiano come una vista in Android che mostra diversi libri in qualsiasi riga? Inoltre, dovrebbe avere caratteristiche orizzontali e verticali come l'app moon + reader.Come creare una visualizzazione simile a un ripiano in Android?

Posso scrivere una vista scaffale che si sposta orizzontalmente ma non funziona completamente. Ho usato un file xml per visualizzare elementi che includevano immagine, testo e pulsante. Ho scritto una classe che estende AdapterView per creare un ListView personalizzato che ho chiamato "shelf view". Sfortunatamente, il mio programma mostra una riga e non posso usarla per più righe.

enter image description here

+1

ci mostri che cosa ha fatto a raggiungere finora? –

+0

Sì di maledizione, ho usato un file xml per visualizzare gli elementi che includevano immagine, testo e buttom. Ho scritto una classe che estende AdaptorView per creare un listview personalizzato che ho chiamato: "shelf view". Sfortunatamente, il mio programma mostra una riga e non posso usarla per più righe. Hai capito? – azad

risposta

20

Ultimo aggiornamento: Ora, io in grado di rilevare un nuovo modo per creare shelf-vista migliore rispetto alla soluzione precedente. Ho descritto in CodeProject

By the Way, In questa applicazione ho usato due classi:

  • HorizontalListView classe che estende l'AdapterView. È stato scaricato da GitHub

  • Quaere libreria utilizza quasi lo stesso di Linq2Object in .Net. È possibile scaricare here.


22 aprile '12:

Ci sono alcuni modi per attuare vista mensola che hanno due caratteristiche (orizzontale & di scorrimento verticale). Provo a scrivere un programma che può essere eseguito dinamicamente. Questa app di esempio ha un file XML e una classe showShelfView java.

Così si può vedere il mio App:

file XML principale: primo luogo, aggiungere seguente codice nel 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 Classe: interno TableLayout aggiungere diversi HorizontalScroll uguale con numero di righe. Anche interno qualsiasi TableRow aggiungi Immagine.

Non dimenticare impostare un'immagine di sfondo per la mensola del 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 Molto utile. – Praveenkumar

+1

il mio piacere ;-) –

+0

@omidnaz non sono riuscito a trovare la libreria di Quaere sul link specificato e lo cerco dappertutto ma ancora non fin d .... potresti per favore fatemi sapere dove posso ottenere questa libreria .. .. –