У меня есть приложение, которое использует адаптер списка, чтобы создать список элементов, которые при нажатии на нас Mupdf для просмотра элемента (в формате PDF)Usingt Mupdf и представление списка в двух отдельных мероприятиях, в конечном счете исчерпывает память
Если я подпрыгиваю назад и вперед между представлениями, у меня в конечном итоге закончится память и сбой. Как я могу убедиться, что каждое представление начинается с максимально возможной памяти, чтобы я не разбивал приложение.
список вид адаптера довольно прост:
public class PosterListAdapter extends BaseAdapter {
private final ArrayList<Poster> listItems;
private final ArrayList<PosterCategory> categoryList;
private final LayoutInflater inflater;
public PosterListAdapter(ArrayList<Poster> listItems, ArrayList<PosterCategory> categoryItems, LayoutInflater inflater) {
this.listItems = listItems;
this.categoryList = categoryItems;
this.inflater = inflater;
}
@Override
public int getCount() {
//Log.d("getCount", String.valueOf(this.listItems.size()));
return this.listItems.size();
}
@Override
public Poster getItem(int i) {
return this.listItems.get(i);
}
public PosterCategory getCItem(int i){
return this.categoryList.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
view = inflater.inflate(R.layout.catalog_list_fragment, viewGroup, false);
}
TextView posterTitle = ((TextView) view.findViewById(R.id.poster_title));
TextView posterAuthor = ((TextView) view.findViewById(R.id.poster_author));
TextView posterSynopsis = ((TextView) view.findViewById(R.id.poster_synopsis));
TextView posterCategory = ((TextView) view.findViewById(R.id.poster_category));
TextView posterNumber = ((TextView) view.findViewById(R.id.poster_number));
ImageView imageView = ((ImageView) view.findViewById(R.id.poster_thumb));
//LayoutParams params = (LayoutParams) imageView.getLayoutParams();
Poster item = this.listItems.get(i);
String filename = item.getPosterFilename();
posterAuthor.setText(item.getPresenterFname()+' '+item.getPresenterLname());
posterTitle.setText(item.getPosterTitle());
posterSynopsis.setText(item.getPosterSynopsis());
posterNumber.setText("Poster: "+String.valueOf(item.getPosterNumber()));
//Log.d("PosterNumber", String.valueOf(item.getPosterNumber()));
int catId = item.getCatID();
posterCategory.setText(getCategoryById(categoryList, catId));
File imgFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath(), filename+".png");
//File imgFile = getBaseContext().getFileStreamPath(filename+".png");
Bitmap bmp = BitmapFactory.decodeFile(imgFile.toString());
//int newWidth = 500;
//Bitmap sizedBMP = getResizedBitmap(bmp, newWidth);
imageView.setImageBitmap(bmp);
return view;
}
}