2017-10-03 2 views
1

J'utilise la bibliothèque PhotoView de here. Il ne donne aucune erreur mais je ne suis pas capable de zoomer sur les images. Rien ne se passe en essayant de zoomer l'image. Je ne reçois pas d'erreurs de build.gradle aussi. Comment puis-je résoudre ce problème?impossible de zoomer des images avec la bibliothèque photoview

FullImageActivity.java:

public class FullImageActivity extends AppCompatActivity { 
    int position; 
    int folderPosition; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_full_image); 
     Intent i = getIntent(); 
     PhotoView photoView = (PhotoView) findViewById(R.id.photo_view); 


     // Selected image id 
     position = i.getExtras().getInt("id"); 
     folderPosition = i.getExtras().getInt("folderPosition"); 
     Bundle extras = getIntent().getExtras(); 
     String value = extras.getString("abc"); 

     Glide.with(FullImageActivity.this) 
       .load(value) 
       .skipMemoryCache(false) 
       .into(photoView); 

     ViewPager mViewPager = (ViewPager) findViewById(R.id.viewpager); 
     mViewPager.setAdapter(new TouchImageAdapter(this,al_images, folderPosition)); 
     mViewPager.setCurrentItem(position); 
    } 
} 

activity_full_image.xml:

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/jazzy_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <com.github.chrisbanes.photoview.PhotoView 
     android:id="@+id/photo_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:scaleType="centerCrop"/> 


</LinearLayout> 

build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion '25.0.3' 
    defaultConfig { 
     applicationId "com.example.dell_1.Myapp3" 
     minSdkVersion 14 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    sourceCompatibility = '1.7' 
    targetCompatibility = '1.7' 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 


dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7' 
    compile 'com.android.support:support-annotations:25.3.1' 
    compile 'com.ss.bannerslider:bannerslider:1.8.0' 
    compile 'com.github.chrisbanes:PhotoView:2.0.0' 
    compile 'com.github.barteksc:android-pdf-viewer:2.7.0-beta.1' 
    compile 'com.github.bumptech.glide:glide:3.8.0' 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support:support-v4' 
    compile 'com.squareup.picasso:picasso:2.3.2' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.daimajia.slider:library:[email protected]' 
    testCompile 'junit:junit:4.12' 
    compile 'org.jetbrains:annotations-java5:15.0' 
} 

Répondre

0

essayez ce code:

Glide.with(FullImageActivity.this) 
        .load(value) 
        .asBitmap() 
        .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
        .into(new SimpleTarget<Bitmap>() { 
         @Override 
         public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
          photoView.setImageBitmap(resource); 
         } 
        }); 
+0

J'ai essayé le clode ci-dessus, toujours pas capable de zoomer les images – Amelia

0

Essayez d'utiliser la bibliothèque Picasso.

Picasso.with(context) 
    .load(url) 
    .placeholder(R.drawable.user_placeholder) 
    .error(R.drawable.user_placeholder_error) 
    .into(imageView); 

Selon this article

Picasso télécharge l'image et stocke l'image en taille réelle (dans mon cas la résolution d'image est 1160 * 750) dans le cache et chaque fois que nous demandons pour la même image, il va retourner l'image en taille réelle et les redimensionner pour s'adapter à l'ImageView en temps réel.

D'autre part, Glide fonctionne différemment. Glide télécharge l'image à partir de l'URL donnée, la redimensionne à la taille de la vue d'image et stocke dans le cache disque.

Vous rencontrez un problème avec le zoom lorsque Glide a redimensionné l'image. Donc, en utilisant Picasso pourrait résoudre votre problème.

+0

j'ai essayé d'utiliser picasso en place de glisse, toujours pas en mesure de zoomer images – Amelia

0

Essayez de cette façon, il vous aidera à

public class ImageView_Main extends Activity { 
private ImageViewTouch ivLargeImage; 
private Bitmap myBitmap; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.image_view); 
ivLargeImage = (ImageViewTouch) findViewById(R.id.ivLargeImageView); 

// if image size is too large.Then scale image. 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 

       // provide image path for create Bitmap from image. 
       // myBitmap = BitmapFactory.decodeFile(//provide here image file path//); 
//Or 
myBitmap = BitmapFactory.decodeResource(//provider here resource //); 

if (options.outWidth > 3000 || options.outHeight > 2000) { 
options.inSampleSize = 4; 
} else if (options.outWidth > 2000 || options.outHeight > 1500) { 
options.inSampleSize = 3; 
} else if (options.outWidth > 1000 || options.outHeight > 1000) { 
options.inSampleSize = 2; 
} 
options.inJustDecodeBounds = false; 

myBitmap = BitmapFactory.decodeResource//provider here resource //); 
ivLargeImage.setImageBitmapReset(myBitmap, 0, true); 
    } 
} 

http://www.theappguruz.com/blog/android-pinch-zoom

+0

où est défini le toucher imageview? Son erreur donnant même après avoir ajouté le fichier jar dans le dossier libs – Amelia

+0

essayez ceci http://www.androidhub4you.com/2013/05/zoom-image-demo-in-android-zoom-image.html –