2016-01-11 11 views
6

Sto usando Glide per scaricare e visualizzare l'immagine, tuttavia, quando ho provato a ridimensionare l'immagine, non lo fa. Ottengo dimensione casuale (o forse è la dimensione effettiva dell'immagine).Ridimensionare il ridimensionamento dell'immagine tramite override non ridimensiona l'immagine

Ecco il codice che ho usato per il caricamento tramite Glide

Glide.with(context) 
    .load(file.getUrl()) 
    .asBitmap() 
    .diskCacheStrategy(DiskCacheStrategy.ALL) 
    .centerCrop() 
    .transform(new CropCircleTransform(context)) 
    .override(dimen, dimen) 
    .into(new SimpleTarget<Bitmap>() { 
     @Override 
     public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
      bitmap = resource; 

      Log.info(resource.getWidth() + "x" + resource.getHeight()); 
     } 
     }); 

il CropCircleTransform solo rendere il raccolto bitmap circolare e al centro. Ho provato a rimuoverlo solo per verificare se questo metodo causa il problema, ma comunque l'immagine non si ridimensiona alla dimensione che ho specificato.

Qualcosa non va nel mio codice? o sto fraintendendo il metodo di override qui?

EDIT:
cercato di rimuovere la sostituzione, e sembra aver caricato l'immagine in grande quindi significa ci sia effettivamente un ridimensionamento che avviene quando si utilizza l'override.

Come mai, non viene ridimensionato al valore effettivo specificato?

EDIT:
Come un campione, il valore per dimen è 96, ma la dimensione visualizzato nel registro per le immagini sono come 97x97, 117x117, 154x154, ecc

vuol dire, il valore per il metodo di override è la linea di base per il ridimensionamento e non la dimensione effettiva da utilizzare?

risposta

1

Ho riscontrato questo errore proprio ora. La mia soluzione è impostata come in questo modo:

  1. imposta la dimensione della tua vista in file xml.
  2. Glide.with(context).load(path).centerCrop().crossFade().into(imageview);

funziona.

+0

è necessario ridimensionare l'ImageView come questo, anche. – Leito

+0

grazie ha funzionato! – Woppi

0

Ho appena incontrato la stessa situazione. E penso che questo sia un bug di Glide. Pertanto, è necessario ridimensionare l'immagine bitmap da soli in questo modo:

Glide.with(context).load(url).asBitmap().into(new SimpleTarget<Bitmap>{ 

    @Override 
    public void onResourceReady(Bitmap resource,GlideAnimation<? extends Bitmap>(){ 
      // resize the bitmap 
      bitmap = resize(width,height); 
      imageView.setImageBitmap(bitmap); 
    } 

}) 

Tra l'altro, la scaleType della ImageView come 'fitXY', 'centerCrop', 'fitCenter' e così via, può anche fare una differenza rispetto al modo in cui Glide ridimensiona l'immagine.

+0

da dove viene "ridimensionato()"? –

+1

È un metodo privato, ma non il punto. –

+0

grazie @Qian Sijianhao –

0

`ImageView iv = (ImageView) findViewById (R.id.left);

int larghezza = 60; altezza int = 60;

LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams (larghezza, altezza); iv.setLayoutParams (parms);

Glide.with (contesto) .load (percorso) .centerCrop() Crossfade() in (iv);.. `

Problemi correlati