1

Je sais que je peux ouvrir une image en utilisant l'image par défaut Android Viewer, par exemple avec new Intent(Intent.ACTION_VIEW) etc.Utilisation de l'image par défaut Android Viewer pour afficher les photos

Si j'ouvre l'image, puis je Balayez vers la gauche/droite I verra les autres images sauvegardées sur l'appareil. Par exemple, si j'ouvre l'une des images WhatsApp, balayant gauche/droite, je vais voir toutes les autres images enregistrées dans le dossier WhatsApp.

Est-il possible de passer par défaut l'image android Viewer un List/Array de uri, afin d'empêcher les utilisateurs de glisser à gauche/droite et de voir toutes les images sur l'appareil?

Je veux que l'utilisateur balaye vers la gauche/droite et ne voit que les images que je lui permets de voir.

Nous vous remercions à l'avance

Répondre

2

essayer cela, vous pouvez utiliser android.support.v4.view.ViewPager

gestionnaire de mise en page qui permet à l'utilisateur de retourner l eft et à travers les pages de données. Vous fournissez une implémentation d'un PagerAdapter pour générer les pages que la vue affiche.

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

</android.support.v4.view.ViewPager> 

Code de démonstration

ViewPager viewPager; 
ArrayList<String> imageArray; 
imageArray = new ArrayList<>(); 
viewPager = findViewById(R.id.cspl_viewPager); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
ImageAdapter adapter = new ImageAdapter(this, imageArray); 
viewPager.setAdapter(adapter); 

maintenant créer ImageAdapter comme celui-ci

public class ImageAdapter extends PagerAdapter { 

     Context context; 
     ArrayList<String> imageArray; 

     public ImageAdapter(Context context, ArrayList<String> imageArray) { 
      this.context = context; 
      this.imageArray = imageArray; 
     } 

     @Override 
     public int getCount() { 
      return imageArray.size(); 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object object) { 
      return view == ((ImageView) object); 
     } 

     @Override 
     public Object instantiateItem(ViewGroup container, int position) { 
      ImageView imageView = new ImageView(context); 

      LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, 50); 
      imageView.setLayoutParams(layoutParams); 

      int padding = context.getResources().getDimensionPixelSize(R.dimen.font_size_10); 
      imageView.setPadding(padding, padding, padding, padding); 

//   imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 

      Glide.with(ProfileActivity.this) 
        .load(R.drawable.bg) 
        .into(imageView); 


      ((ViewPager) container).addView(imageView, 0); 

      return imageView; 

     } 

     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      ((ViewPager) container).removeView((ImageView) object); 
     } 
    } 
+0

Merci l'homme :) – MDP

+0

plus bienvenus @MDP –

2

Meilleur scénario est que vous pouvez utiliser viewpager avec votre réseau d'image ou d'une liste d'images et vous pouvez obtenir toutes les fonctionnalités de mouvement vers la gauche ou la droite, rien que vous devez faire plus mettre en œuvre juste viewpager et de créer un adaptateur pour l'image lorsque l'événement chercher getItem appelé,

+0

Je vois. Je n'ai jamais utilisé viewpager auparavant. Je vais l'étudier. Merci l'homme – MDP