2012-04-15 21 views
15

アンドロイドでどのような行にもいくつかの本を表示する棚のようなビューを作成するには?また、月+読者アプリのような水平と垂直の機能を持っている必要があります。Androidで棚のようなビューを作成するにはどうすればいいですか?

水平に移動するシェルフビューを作成できますが、完全には機能しません。画像、テキスト、ボタンを含むビュー項目にxmlファイルを使用しました。私はAdapterViewを拡張してと呼ばれるListViewをカスタマイズしたクラスを作成しました。残念ながら、私のプログラムは1つの行を表示し、私はいくつかの行のためにそれを使用することはできません。

enter image description here

+1

は、あなたがこれまでに何を達成した私たちを見ることができますか? –

+0

呪いのええ、私はイメージ、テキスト、buttomを含むビュー項目のXMLファイルに慣れていました。私はAdaptorViewを拡張してクラスを作成しました。私はそれを "シェルフビュー"と呼んでいます。残念ながら、私のプログラムは1つの行を表示し、私はいくつかの行のためにそれを使用することはできません。 あなたはそれを取得しましたか? – azad

答えて

20

最終更新日:今、私は以前のソリューションよりも優れた保存ビューを作成するための新しい方法を検出することができます。

  • Horizo​​ntalListViewクラスAdapterViewを拡張:私はちなみに

    CodeProjectでそれを説明し、このアプリケーションでは、私は2つのクラスを使用していました。 GitHub

  • Quaereライブラリの使用は.NetのLinq2Objectとほぼ同じです。 hereをダウンロードできます。


4月22日'12:

それは二つの特徴(水平&垂直スクロール)を持っていることをシェルフビューを実装するためのいくつかの方法があります。私は動的に動くプログラムを書こうとしています。このサンプルアプリケーションには、XMLファイルとshowShelfView javaクラスがあります。

だから、あなたが私のアプリを確認できます。

メインのXMLファイル:インナーTableLayoutは、いくつかのHorizo​​ntalScrollに等しい追加:まず、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クラスに次のコードを追加します。行数。また、任意のTableRow内部の画像を追加します。

行の背景用の棚の画像を設定し忘れてはいけない:

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非常に便利なもの。 – Praveenkumar

+1

私の喜び;-) –

+0

@omidnaz指定されたリンクでQuaereライブラリを見つけることができず、どこでも検索できますが、まだまだフィンではありません....私はこのライブラリをどこで入手できるのか教えてください。 .. –

関連する問題