2012-11-13 4 views
5

Mi piacerebbe utilizzare ImageViewZoom con Universal Image Loader in ImagePagerActivity.L'immagine non viene visualizzata in ImageViewZoom

Allora, che cosa ho fatto:

  1. ho imageviewtouch.jar aggiunto al progetto classpath.
  2. In ImagePagerActivity ho modificato una riga nella funzione instantiateItem(). Ho commentato linea dove è ImageView e sostituito per ImageViewTouch (4. e 5. linea)

    @Override 
    public Object instantiateItem(View view, int position) { 
        final View imageLayout = inflater.inflate(R.layout.item_pager_image, null); 
        //final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image); 
        final ImageViewTouch imageView = (ImageViewTouch) imageLayout.findViewById(R.id.image); 
    
        final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading); 
        final TextView textView = (TextView)imageLayout.findViewById(R.id.text); 
    
        imageLoader.displayImage(images[position], imageView, options, new ImageLoadingListener() { 
    
    
         public void onLoadingStarted() { 
          spinner.setVisibility(View.VISIBLE); 
         } 
    
    
         public void onLoadingFailed(FailReason failReason) { 
          String message = null; 
          switch (failReason) { 
           case IO_ERROR: 
            message = "Input/Output error"; 
            break; 
           case OUT_OF_MEMORY: 
            message = "Out Of Memory error"; 
            break; 
           case UNKNOWN: 
            message = "Unknown error"; 
            break; 
          } 
          Toast.makeText(ImagePagerActivity.this, message, Toast.LENGTH_SHORT).show(); 
    
          spinner.setVisibility(View.GONE); 
          imageView.setImageResource(android.R.drawable.ic_delete); 
         } 
    
    
         public void onLoadingComplete(Bitmap loadedImage) { 
          spinner.setVisibility(View.GONE); 
          Animation anim = AnimationUtils.loadAnimation(ImagePagerActivity.this, R.anim.fade_in); 
          imageView.setAnimation(anim); 
          anim.start(); 
         } 
    
    
         public void onLoadingCancelled() { 
          // Do nothing 
         } 
        }); 
    
        ((ViewPager) view).addView(imageLayout, 0); 
        return imageLayout; 
    } 
    
  3. In /res/layout/item_pager_image.xml sostituisce ImageView a it.sephiroth.android.library .imagezoom.ImageViewTouch

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:padding="1dip" > 
    
        <it.sephiroth.android.library.imagezoom.ImageViewTouch 
        android:layout_weight="1" 
        android:id="@+id/image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:scaleType="fitCenter" /> 
    
        <ProgressBar 
        android:id="@+id/loading" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:visibility="gone" /> 
    
    </FrameLayout> 
    

ho eseguito questa applicazione Android, ma quando scelgo immagine Pager a schermo del menu, non c'è immagine visualizzata, solo uno schermo nero. Nel logcat vedo che l'immagine è stata scaricata e visualizzata ... Se cambio ImageViewTouch in ImageView originale, tutto è OK, ma ovviamente non c'è alcuna funzione di zoom. Se qualcuno sa cosa faccio di sbagliato, sarei molto grato. (scusate il mio inglese)

+0

Hai provato senza l'animazione in dissolvenza? – Joony

+0

Sì, ho provato, ma non ha risolto il problema ... –

+0

Perché il tuo ImageViewTouch ha '' 'android: layout_height =" 0dp "' ''? – NOSTRA

risposta

0

Modificare il parametro ImageViewTouch da android:layout_height="0dp" ad altro valore.

+0

Ciao NOSTRA, sto anche affrontando lo stesso problema con viewpager. Sono in grado di ingrandire l'immagine, e se l'immagine è in posizione zoom non sono in grado di vedere gli altri angoli dell'immagine. se un'immagine è ingrandita e io sono in posizione centrale, se voglio vedere la parte del lato destro della stessa immagine e scorrere verso sinistra, si passa all'immagine successiva. Come posso superare questo problema. Mi aiuti per favore. – wolverine

+0

Ciao, il tuo problema è molto diverso. Crea una domanda separata. – NOSTRA

+0

Ho fatto una domanda. per favore guarda questo http://stackoverflow.com/questions/13398288/image-zoom-issue-with-universal-image-loader-and-view-pager – wolverine