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?
- Cómo centrar un textview dentro de un linearlayout
- ¿Cómo encadenar la animación en android a la misma vista?
- ¿Cómo mostrar la lista desplegable-ver debajo de la vista particular en android?
- Android WebView no sólo de vídeo audio
- Cómo desplegar una parte de la imagen en android
¡Gracias!
===================================================
Como aconsejaron ustedes, he hecho una captura de pantalla del logcat. Aquí está :
- Cómo mostrar la imagenVer pantalla completa en la imagen¿Haga clic?
- OnDraw Vista personalizada dentro de un Scrollview
- Android, Vista lista expandible no tiene reacción al clic !!! No se expande
- Vista de lista expandible
- Android Take Captura de pantalla de Vista de superficie muestra negro
- Cargar HTML en la vista web en Android?
- Uso de dos diseños diferentes para elementos secundarios en ExpandableListView
- ¿Cuál es la manera correcta de ampliar EditText para darle funcionalidad adicional "predeterminada"
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);