我通过许多资源推荐,但无法得到正确的答案,滚动Listview时内存不足异常?
我已经做了一个自定义适配器来查看图像在列表视图。这些图像从存储卡中检索。一切运行良好,但是当我滚动列表视图时,我得到一个OutOfMemory异常。我发布了代码,使用我从SD卡中检索图像。
public void getFromSdcard() {
File file = new File(
android.os.Environment.getExternalStorageDirectory(),
"Tiles/.NoMedia");
if (file.isDirectory()) {
listFile = file.listFiles();
for (int i = 0; i < listFile.length; i++) {
f.add(listFile[i].getAbsolutePath());
}
}
}
这里f是字符串数组列表,我将它传递给下一个自定义适配器是我的自定义接口的代码。
public class NewImageAdapter extends ArrayAdapter<Image> {
private ArrayList<Image> objects;
String packageName;
Activity act;
public NewImageAdapter(Activity context, int image_layout,
ArrayList<Image> objects) {
super(context, image_layout, objects);
this.act = context;
this.objects = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_item, null);
}
Image i = objects.get(position);
if (i != null) {
ImageView iv = (ImageView) v.findViewById(R.id.imagemenu123);
// TextView tv = (TextView) v.findViewById(R.id.commandText);
if (iv != null) {
Bitmap myBitmap = BitmapFactory.decodeFile(i.getImagePath());
iv.setImageBitmap(myBitmap);
// iv.setImageBitmap(i.getImageBitmap());
// tv.setText("Tiles Images");
}
}
return v;
}
}
任何解决我的问题:
希望它的工作.... Thanx ... @ Sunil ... –
U欢迎投票... –