0

リストビューがあり、Webからビットマップを読み込んでいますが、問題はリストビューに1000個のアイテムがあるため、メモリ不足エラーが発生することです。画像キャッシュも使用しました。 。

4

3 に答える 3

2

以下のいずれかを使用すると問題が解決すると思います

怠惰なリスト

ユニバーサルImageLoader

于 2012-11-29T03:31:04.523 に答える
1

次のコードを試してください。

   public class ListFivePictureNameDetailsPassFail extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setListAdapter(new StudentListAdapter(this));
}

private class StudentListAdapter extends BaseAdapter {
    private Context mContext;
    private String[] mStudents = { "DurgaPrasad", "Raghu", "Vivek",
            "Satish", "Naga Jyothi", "Vardhika", "Nikhil" };
    private String[] mDetailsStudent = { "Details of DurgaPrasad",
            "Details of  Raghu This row is not created using java",
            "Details of Vivek", "Details of Satish",
            "Details of Naga Jyothi", "Details of Vardhika",
            "Details of Nikhil" };

    public StudentListAdapter(Context context) {
        mContext = context;
    }

    public int getCount() {
        return mStudents.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            System.out.println("111111111111 : "+position);
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            /*if (position == 0) {
                System.out.println("111111111111 : "+position);
                v = vi.inflate(R.layout.studentdetailsrow, null);
                System.out.println("111111111111 : "+position);
            } else*/
                v = vi.inflate(R.layout.studentdetailsrowother, null);
        }

        ImageView iv = (ImageView) v.findViewById(R.id.icon);
        ImageView iv2 = (ImageView) v.findViewById(R.id.icon2);
        if (position == 0) {
            iv.setImageResource(R.drawable.newicon);
            iv2.setImageResource(R.drawable.icon);
        } else {
            iv.setImageResource(R.drawable.newicon);
            iv2.setImageResource(R.drawable.icon);
        }

        TextView tvname = (TextView) v.findViewById(R.id.stuname);
        TextView tvdetail = (TextView) v.findViewById(R.id.studetail);
        tvname.setText(mStudents[position]);
        tvdetail.setText(mDetailsStudent[position]);
        return v;
    }
};

   }
于 2012-11-29T03:56:58.857 に答える
0

画像を可能な限り縮小することで、メモリ使用量を最小限に抑えることもできます。これを行う方法の例を次に示します。

于 2012-11-29T03:45:12.760 に答える