too - manual de programacion android pdf
Android Studio Canvas: dibujar un mapa de bits demasiado grande (7)
En mi caso, tuve que eliminar la plataforma de Android y agregarla nuevamente. Algo se atascó y copiar todo mi código en otra aplicación funcionó de maravilla, de ahí mi idea de limpiar la compilación para Android eliminando la plataforma.
cordova platform remove android
cordova platform add android
Supongo que es algún tipo de limpieza que tienes que hacer de vez en cuando :-(
Estoy ejecutando Ubuntu 16.04. Y en Android Studio cuando intento ejecutar mi aplicación en el emulador, aparece el siguiente error:
EXCEPCIÓN FATAL: proceso principal: nombre del proyecto aquí , PID: 2528 java.lang.RuntimeException: Canvas: tratando de dibujar un mapa de bits demasiado grande (216090000bytes). en android.view.DisplayListCanvas.throwIfCannotDraw (DisplayListCanvas.java:260) en android.graphics.Canvas.drawBitmap (Canvas.java:1415) en android.graphics.drawable.BitmapDrawable.draw (BitmapDrawable.java:528) en android. widget.ImageView.onDraw (ImageView.java:1316) en android.view.View.draw (View.java:17185) en android.view.View.updateDisplayListIfDirty (View.java:16167) en android.view.View.draw (View.java:16951) en android.view.ViewGroup.drawChild (ViewGroup.java:3727) en android.view.ViewGroup.dispatchDraw (ViewGroup.java:3513) en android.view.View.updateDisplayListIfDirty (View.java: 16162) en android.view.View.draw (View.java:16951) en android.view.ViewGroup.drawChild (ViewGroup.java:3727) en android.view.ViewGroup.dispatchDraw (ViewGroup.java:3513) en
etc ...
Tuve que ejecutar algunos aros para que mi emulador funcionara, sin embargo, necesitaba crear un enlace simbólico para poder ejecutar el emulador en AMD. No estoy seguro si esto es parte del problema. Y por mi vida no puedo entender por qué continúa haciendo esto. En mi grupo, hay otros que emulan el proyecto perfectamente en el mismo teléfono y SDK emulados.
Esto puede ser un problema con Glide. Use esto mientras intenta cargar muchas imágenes y algunas de ellas son muy grandes:
Glide.load("your image path")
.transform(
new MultiTransformation<>(
new CenterCrop(),
new RoundedCorners(
holder.imgCompanyLogo.getResources()
.getDimensionPixelSize(R.dimen._2sdp)
)
)
)
.error(R.drawable.ic_nfs_default)
.into(holder.imgCompanyLogo);
}
Mueva su imagen en (alta resolución) dibujable a dibujable-xxhdpi . Pero en el desarrollo de aplicaciones, no necesita usar imágenes grandes. Aumentará el tamaño de su archivo APK.
Para este error fue como otros dijeron una imagen grande (1800px X 900px) que estaba en el directorio dibujable, edité la imagen y reduje el tamaño proporcionalmente usando photoshop y funcionó ... !!
Resulta que el problema era la imagen principal que utilizamos en nuestra aplicación en ese momento. El tamaño real de la imagen era demasiado grande, por lo que lo comprimimos. Luego funcionó de maravilla, sin pérdida de calidad y la aplicación funcionó bien en el emulador.
Yo tuve el mismo problema. Si intenta cargar una imagen que es demasiado grande en algunos dispositivos de baja resolución, la aplicación colapsará. Puede hacer varias imágenes de diferentes tamaños (hdpi, xxdpi y más) o simplemente usar una biblioteca externa para cargar imágenes que resuelvan el problema de manera rápida y eficiente. Usé la biblioteca Glide (puedes usar otra biblioteca como Picasso).
panel_IMG_back = (ImageView) findViewById(R.id.panel_IMG_back);
Glide
.with(this)
.load(MyViewUtils.getImage(R.drawable.wallpaper)
.into(panel_IMG_back);
si usas Picasso cambia a Glide así.
Eliminar picasso
Picasso.get().load(Uri.parse("url")).into(imageView)
Cambiar deslizamiento
Glide.with(context).load("url").into(imageView)
Deslizamiento más eficiente que el dibujo de Picasso en un mapa de bits grande