2014-06-11 6 views
0

J'essaie de récupérer une image à partir d'une URL et de l'afficher sur un ImageView. La tâche semble assez facile et je peux montrer les images dans l'ImageView mais la qualité est vraiment mauvaise.Grande perte de qualité d'image lors du décodage à partir d'InputStream

Voici ce que je l'ai fait jusqu'à présent:

Options options = new BitmapFactory.Options(); 
options.inScaled = false; 
options.inDither = false; 
options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
InputStream in = new java.net.URL(urldisplay).openStream(); 
mIcon11 = BitmapFactory.decodeStream(in,null,options); 

Les propriétés ImageView:

<ImageView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     .../> 

J'ai essayé aussi d'utiliser directement le decodeStream sans options, mais le résultat est toujours le même.

+0

Quelle est la taille d'ImageView en pixels et la taille de l'image téléchargée en pixels? – Niko

+0

@Niko les propriétés ImageView sont affichées dans mon message. width = match_parent et la hauteur est définie avec le ratio avec 'androi: weight'. En ce qui concerne l'image téléchargée, la taille change d'une image à l'autre mais je m'attends à ce que l'ImageView fasse évoluer l'image automatiquement – 113408

+0

Mais combien sont-ils en pixels? Si la taille de pixel de l'image téléchargée est considérablement inférieure à la taille des pixels ImageView, la qualité ne peut pas être bonne. – Niko

Répondre

0

Le code est correct, vous pourriez également envisager d'utiliser le dithering pour un meilleur résultat. Si les images que vous téléchargez sont beaucoup plus petites en pixels que les ImageView, le résultat est mauvais.

La solution est d'avoir des images de meilleure qualité à télécharger ou à modifier le ImageView pour qu'il soit plus petit. Vous pouvez ajuster la largeur et la hauteur par programmation après avoir décodé le Bitmap. Si la taille de pixel Bitmap est inférieure à ImageView, réduisez le ImageView.

+0

Il est donc préférable de définir 'inDither' à true? Je veux dire en général pour une meilleure qualité – 113408

+1

Je recommande de lire ceci pour donner l'idée comment le tramage peut affecter une image: https://en.wikipedia.org/wiki/Dither – Niko

Questions connexes