Aller au contenu

forcer la taille d'une image


pitse

Recommended Posts

bonjour,

dans le cadre d'un lecteur de flux rss ( oui, on a connu plus original j'en conviens :p ) j'ai besoin d'afficher des images vignettes relatif aux articles

le probleme c'est que l'image a une taille différente en fonction des flux rss

pouvez vous m'aider a redimentionner cette derniere ?

actuellement son contenu est stocké en bdd

suggerez vous de faire un resize logiciel puis de stocker l'image a la bonne taille ou bien de faire le resize dans la gui ?

j'ai essayé la 2em methode sans succes:

        android:id="@+id/icon"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_marginRight="6dip"
       android:src="@drawable/icon" android:maxWidth="81px" android:maxHeight="50px"/>

cela n'a aucun effet :/

merci pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

je poste ma reponse parce que ca peux servir a d'autre ;)

    public static ByteArrayOutputStream getImageOutputStream(String url,int newWidth,int newHeight) throws ClientProtocolException, IOException{
       ByteArrayOutputStream out =null;
       DefaultHttpClient mHttpClient = new DefaultHttpClient();
       HttpGet mHttpGet = new HttpGet(url);
       HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);
       if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
         HttpEntity entity = mHttpResponse.getEntity();
           if ( entity != null) {
               byte[] bb= EntityUtils.toByteArray(entity);
               Bitmap bm=BitmapFactory.decodeByteArray(bb, 0, bb.length);                
               out = new ByteArrayOutputStream();
               resizeBitmap(bm,newWidth,newHeight).compress(Bitmap.CompressFormat.PNG, 100, out);
           }
       }
       return out;
   }

   public static Bitmap resizeBitmap(Bitmap orig,int newWidth,int newHeight){
           int width = orig.getWidth();
           int height = orig.getHeight();
               float scaleWidth = ((float) newWidth) / width;
               float scaleHeight = ((float) newHeight) / height;
               Matrix matrix = new Matrix();
               matrix.postScale(scaleWidth, scaleHeight);
               Bitmap resizedBitmap = Bitmap.createBitmap(orig, 0, 0,width, height, matrix, true); 
               return resizedBitmap;
   }

la premiere methode permet de gerer directement une url d'image depuis le net

Lien vers le commentaire
Partager sur d’autres sites

Il suffit de donner une taille fixe en pixel/dip à ton ImageView

L'image remplira ton ImageView

ce n'est pas ce que j'avais premierement essayé via:

android:src="@drawable/icon" android:maxWidth="81px" android:maxHeight="50px"/>

?

Lien vers le commentaire
Partager sur d’autres sites

android:layout_width="81px"

android:layout_height="50px"

je note pour une proochaine fois,

cependant la solution que j'ai trouvé par la suite me conviens mieux et me semble moins gourmande en ressource ; )

merci en tout cas,

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...