android - montage image dans imageview
Je me suis mise en œuvre d'un widget où j'essaie d'afficher une grande image à l'intérieur d'un affichage de l'image (8mpx) comme ceci :
<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>
Dans l'émulateur, tout semble ok, mais quand je le déployer à l'appareil, j'ai un "problème de chargement du widget" message.
l'émulateur est HVGA et mon appareil a une résolution de 480x800.
Tout ideea ce que je fais mal ?
Merci!
==================================================
Comme conseillé par vous les gars, je vous ai fait une capture d'écran de la logcat.
Ici, il est :
tu veux afficher l'image complète
salut! oui, je veux afficher la totalité de l'image redimensionnée (tout en gardant les proportions)
Pourriez-vous s'il vous plaît modifier votre question, avec l'intégralité de la sortie d'erreur de logcat? Aussi, êtes-vous d'utiliser l'accélération matérielle? Si vous essayez de l'éteindre et de voir ce qui se passe. J'ai essayé de chargement très grandes images en utilisant l'accélération matérielle, et il y a un silence OpenGL erreur de se plaindre il n'y a pas assez de mémoire pour charger l'image, et cette erreur ne s'affiche dans le logcat de sortie.
oui l'erreur dans le logcat semble être en relation avec la mémoire...
cette question semble similaire... stackoverflow.com/questions/6265008/...
salut! oui, je veux afficher la totalité de l'image redimensionnée (tout en gardant les proportions)
Pourriez-vous s'il vous plaît modifier votre question, avec l'intégralité de la sortie d'erreur de logcat? Aussi, êtes-vous d'utiliser l'accélération matérielle? Si vous essayez de l'éteindre et de voir ce qui se passe. J'ai essayé de chargement très grandes images en utilisant l'accélération matérielle, et il y a un silence OpenGL erreur de se plaindre il n'y a pas assez de mémoire pour charger l'image, et cette erreur ne s'affiche dans le logcat de sortie.
oui l'erreur dans le logcat semble être en relation avec la mémoire...
cette question semble similaire... stackoverflow.com/questions/6265008/...
OriginalL'auteur maephisto | 2011-09-28
Vous devez vous connecter pour publier un commentaire.
utiliser cette
supprimer la android:layout_gravity="top|center_horizontal" android:scaleType="fitXY" en xml
maintenant, il travaille sur l'émulateur, mais il n'est pas sur l'appareil
OriginalL'auteur RajaReddy PolamReddy
quelle est l'erreur?....
OriginalL'auteur Mohammad Ersan
Essayer de code ci-dessous
mise à jour de la réponse de vérifier que
il a essayé! le code ci-dessus me donne une erreur à la fois de l'émulateur et de l'appareil. si j'ajoute le poids de l'attribut xml il travaille sur l'émulateur seulement, sur le périphérique.
ce type d'erreur pouvez-vous l'expliquer?
c'est la même chose décrite dans la question. au lieu de le widget, je reçois un "Problème de chargement de la widget" message sur l'écran de l'appareil
OriginalL'auteur ingsaurabh
Vieux post, mais on ne sait jamais...
Le logcat montre le problème:
"allocation trop grand pour ce processus de"
L'image que vous essayez de render est trop grand pour tenir dans la mémoire. Vous avez besoin à l'échelle de l'image vers le bas, mais n'essayez pas de créer une version modifiée de l'image bitmap ou vous allez atteindre le même problème. La solution est le chargement de l'image dans la mémoire, mais SEULEMENT pour les dimensions, puis créez une nouvelle image avec une taille d'échantillon qui réduit la taille globale de l'image.
Fait, vous n'avez même pas besoin de charger l'image pour obtenir la taille originale de faire cela, mais il est souvent judicieux de sorte que vous pouvez choisir une taille appropriée de l'échantillon.
par exemple
En supposant que votre image est obtenue à partir d'un InputStream:
OriginalL'auteur Jason Polites