Исключение нехватки памяти #, как я могу исправить исключение нехватки памяти при обработке следующего класса адаптера. Могу ли я решить эту проблему с помощью ленивого адаптера?
public class myAdapter extends ArrayAdapter<Image>{
public myAdapter(){
super(MainActivity.this, R.layout.image,Imagelist);
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v=convertView;ViewHolder h;
if(v==null){
v=getLayoutInflater().inflate(R.layout.image, null);
ImageView img=(ImageView) v.findViewById(R.id.imageView1);
img.getLayoutParams().height=500;
img.getLayoutParams().width=500;
TextView Title=(TextView)v. findViewById(R.id.textView2);
TextView desc=(TextView) v.findViewById(R.id.textView1);
h=new ViewHolder(img,Title,desc);
v.setTag(h);
}
else {
h = (ViewHolder) v.getTag();
}
final Image image1=Imagelist.get(position);
//ImageView imageview=(ImageView)v.findViewById(R.id.imageView1);
h.img.setImageBitmap(image1.getB());
//=(TextView) v.findViewById(R.id.textView1);
h.title.setText(" "+image1.getT());
h.desc.setText(image1.getDesc());
//Imagelist.clear();
h.img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Intent.ACTION_VIEW,Uri.parse(image1.getVideourl()));
startActivity(i);
}
});
return v;
}
}
class ViewHolder {
public ImageView img;
public TextView title;
public ViewHolder(ImageView img, TextView title, TextView desc) {
super();
this.img = img;
this.title = title;
this.desc = desc;
}
}
2 ответа
Вы можете использовать любую библиотеку загрузчика изображений для загрузки изображения вместо установки изображения из растрового изображения. В случае, если размер изображения настолько велик, вы можете использовать
андроид : largeHeap = " истина"
Дать больше памяти.
По моему мнению, вы можете удалить эту ошибку, вызвав метод recycle, т.е. изображение1.переработать(); этот метод освободит память, занимаемую image1, как только вы вызовете этот метод. Также вы можете получить доступ к http://developer.android.com/training/displaying-bitmaps /index.html, чтобы узнать, как эффективно работать с растровыми изображениями. Надеюсь, поможет!!
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.