java - 安卓项目OOM
PHP中文网
PHP中文网 2017-04-18 09:39:09
0
6
512
PHP中文网
PHP中文网

认证0级讲师

répondre à tous(6)
Ty80

Et si vous utilisiez des cadres photo tels que Glide ? Il est peut-être préférable de compresser automatiquement les images

阿神

Je l'ai également rencontré, et je ne l'ai pas complètement évité, mais je peux faire de mon mieux
1 Charger des images locales avec une compression appropriée

.
   InputStream is = this.getResources().openRawResource(R.drawable.pic1);
    BitmapFactory.Options options = new  BitmapFactory.Options();
     options.inJustDecodeBounds =  false;
     options.inSampleSize =  10;   // width,hight设为原来的十分一
     Bitmap btp =  BitmapFactory.decodeStream(is, null,  options);

2. Ajouter :

à l'application
      android:largeHeap="true"
      android:hardwareAccelerated="true"
      这样可以使用更大的内存,而不会报错

Bien sûr, la solution la plus fondamentale est de récupérer la mémoire au moment opportun. Par exemple, l'interface coulissante que vous avez mentionnée peut être jugée dans l'adaptateur. Si l'interface n'est pas affichée, l'image sera recyclée. Lorsque l'interface coulissante sera affichée, elle sera rechargée

.
大家讲道理

Les images uniques ne seront généralement pas MOO. S'il y a plusieurs images, elles n'ont pas besoin d'être en haute définition. Un grand nombre d'images haute définition sont difficiles à traiter, essayez donc d'utiliser le chargement asynchrone, la compression (après compression, ce n'est plus de la haute définition), le recyclage multiple et le chargement par pause glissante.

黄舟
  1. Il n'est pas nécessaire d'utiliser un grand nombre d'images haute définition sur une même interface. Il est préférable de ne pas dépasser la taille de la Vue, sinon cela n'aura aucun sens,

  2. Ensuite, vous pouvez choisir de baisser un peu la qualité pour réduire l'utilisation...

  3. Ensuite, vous avez la possibilité de récupérer la mémoire lorsque vous effectuez d'autres opérations...

左手右手慢动作

la glisse est légèrement meilleure que Picasso (la glisse est améliorée en fonction de Picasso). S'il s'agit d'une application qui utilise beaucoup d'images, mais elle utilise Fresco, la technologie noire de FaceBook, le cache d'images et l'espace mémoire ouvert par lui-même, c'est incroyable. (Il existe également des images floues préchargées, mais elles sont un peu gênantes à utiliser. Personnellement, c'est parce qu'il faut donner à l'image au moins une valeur claire de hauteur ou de largeur, sinon les deux wrap_contents ne seront pas affichés)

小葫芦

Une méthode simple consiste à convertir le format d'image en webp. La qualité de l'image ne sera pas beaucoup réduite, mais la taille de l'image sera considérablement réduite

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal