imagen de ajuste de androide en imagen

Estoy implementando un widget en el que intento mostrar una imagen grande dentro de una vista de imagen (8mpx) así:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/widget" android:background="#000000" android:padding="15dp" android:layout_margin="5dp" android:layout_gravity="top|center_vertical|center_horizontal" > <LinearLayout android:background="#ffffff" android:padding="1dp" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" > <ImageView android:adjustViewBounds="true" android:id="@+id/image" android:src="@drawable/sample" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="top|center_horizontal" android:scaleType="fitXY" android:maxWidth="200dip" android:maxHeight="300dip" /> </LinearLayout> 

En el emulador todo parece bien, pero cuando me despliegue al dispositivo, consigo el "mensaje de carga del problema" mensaje. el emulador es HVGA y mi dispositivo tiene una resolución de 480×800. Cualquier ideea ¿qué estoy haciendo mal?

¡Gracias!

===================================================

Como aconsejaron ustedes, he hecho una captura de pantalla del logcat. Aquí está :

introduzca la descripción de la imagen aquí

utilizar esta

 imageview.setImageResource(your_image); imageview.setScaleType(ScaleType.MATRIX); 
 imageview.setScaleType(ScaleType.CENTER_INSIDE); 

Intente abajo el código

 <ImageView android:adjustViewBounds="true" android:id="@+id/image" android:src="@drawable/sample" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center_horizontal" android:scaleType="centerInside" /> 

Old post, pero nunca se sabe …

El logcat muestra el problema:

"asignación demasiado grande para este proceso"

La imagen que está intentando renderizar es demasiado grande para caber en la memoria. Necesitas escalar la imagen hacia abajo, pero no intentes crear una versión escalada del mapa de bits o te afectará el mismo problema. La solución es cargar el mapa de bits en memoria, pero SOLAMENTE para sus dimensiones, y luego crear un nuevo mapa de bits con un tamaño de muestra que reduce el tamaño total de la imagen.

En realidad, ni siquiera necesita cargar en la imagen para obtener su tamaño original para hacer esto, pero a menudo tiene sentido para que pueda elegir un tamaño de muestra adecuado.

p.ej

Suponiendo que su mapa de bits se obtiene de un InputStream:

 InputStream in = ... // Your Bitmap Stream // Decode JUST the dimensions Options dimensionOptions = new Options(); dimensionOptions.inJustDecodeBounds = true; BitmapFactory.decodeStream(in, null, dimensionOptions); // Get the dimensions of the raw int rawWidth = dimensionOptions.outWidth; // Choose a target width for the image (screen width would make sense) int targetWidth = 480; // Select the sample size which best matches our target size. // This must be an int float sampleSize = (float)rawWidth / (float)targetWidth; // Assume lower, which will result in a larger image int sample = (int) FloatMath.floor(sampleSize); // Use this to decode the original image data Options scaleOptions = new Options(); scaleOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; // 4 bytes per pixel scaleOptions.inSampleSize = sample; // Now create a bitmap using the sample size Bitmap scaled = BitmapFactory.decodeStream(in, null, scaleOptions); 
  • Vistas superpuestas en Android
  • ListView expandir animación para elementos sólo funciona después del segundo clic
  • Cómo obtener un Gesture View como en la aplicación oficial de Facebook
  • Android: ¿Cómo pasar mejor los datos a una vista?
  • Actualizar la posición de la vista debajo de otra vista en Android
  • Establecer el ancho y la altura de la imagen en ImageView
  • Expanda todos los niños en la vista de lista expandible
  • Android - listview obtener la vista del artículo por posición
  • cómo guardar y restaurar Webview Estado?
  • ExpandableListView - la indicación de grupo es extensible para ajustarse al tamaño del texto
  • ¿Puedo ejecutar JavaScript sin un WebView, o un WebView puede ejecutarse sin un contexto de actividad, como en un servicio?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.