Как изменить размер массива изображения? - PullRequest
0 голосов
/ 14 марта 2019
@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ImageView iv_images;

    final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.imageadapter1, null);

    iv_images = (ImageView) convertView.findViewById(R.id.iv_images1);

    iv_images.setImageResource(images[position]);

    return convertView;
}

java.lang.OutOfMemoryError: Не удалось выделить 9042060 байт распределение с 8030424 свободными байтами и 7 МБ до OOM

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Вы можете просто использовать уменьшенное изображение.

  1. Google фактически опубликовал руководство по предотвращению OutOfMemoryErrors здесь , которое очень поможет, хотя мне пришлось использовать уменьшенное изображениеsize.
  2. Один из методов, который почти наверняка сработает, - это установить android: largeHeap = "true" в вашем манифесте , между вашим приложением тегов.Это увеличит размер кучи, но может немного задержать приложение.
  3. Используйте WebP изображение для загрузки, если у вас было большое количество изображений.

Вы можете попробовать эту ссылку https://developer.android.com/topic/performance/graphics/load-bitmap

0 голосов
/ 14 марта 2019

Вы можете использовать такие библиотеки, как Пикассо

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ImageView iv_images;

    final LayoutInflater inflater = (LayoutInflater) 
    mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.imageadapter1, null);

    iv_images = (ImageView) convertView.findViewById(R.id.iv_images1);

    Picasso.get()
       .load(images[position])
       .resize(YOUR_WIDTH, YOUR_HEIGHT)
       .centerCrop()
       .into(iv_images)

    return convertView;
}

Не забыли добавить зависимости.

Gradle:

implementation 'com.squareup.picasso:picasso:2.71828'

Maven:

<dependency>
  <groupId>com.squareup.picasso</groupId>
  <artifactId>picasso</artifactId>
  <version>2.71828</version>
</dependency>
...