2

私のアプリは、1 つの特定のアクティビティのテキストと画像を一覧表示する必要があります。リストの各行には 2 つの列があり、1 つは画像用、もう 1 つは文字列用です。

画像の数が少ない場合 (10 以下) に機能します。10 (場合によっては 15) を超えると、アプリがクラッシュします。10 個を超える画像でこれを機能させるにはどうすればよいでしょうか?

以下は、テキストと画像をリストするためのコードです。最初の 2 行は、strings.xml からデータを取得します。ありがとう。

            pic=res.obtainTypedArray(R.array.site_pic);
            arr_site = getResources().getStringArray(R.array.site_name); 

    TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);

    for(int i=0; i<num_site; i++)
    {
         final TableRow tr = new TableRow(this);

         tr.setLayoutParams(new LayoutParams(
                        LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT));
         tr.setPadding(0, 10, 0, 10);

         ImageView iv = new ImageView(this);
         iv.setImageDrawable(pic.getDrawable(i));
         iv.setAdjustViewBounds(true);
         iv.setMaxHeight(80);
         iv.setPadding(5, 5, 15, 5);             
         tr.addView(iv);

         TextView tv1 = new TextView(this);
         tv1.setText(arr_site[i]);
         tv1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));
         tv1.setGravity(Gravity.LEFT);           
         tr.addView(tv1);

         tl.addView(tr,new TableLayout.LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));                            
    }
4

2 に答える 2

1

ViewHolderロジックを使用します。ViewHolder を使用すると、スクロール中に画像が他の画像に置き換えられます。GridViewまた、あなたが言ったようにアイテムを表示するために使用できることをお勧めします。

参照は次のとおりです。http://developer.android.com/training/improving-layouts/smooth-scrolling.html

ここにチュートリアルがあります: http://www.learn2crack.com/2014/01/android-custom-gridview.html

于 2015-07-09T07:47:21.207 に答える