2017-09-06 6 views
0

Je crée une activité Android où il y a un ScrollView avec un ViewPager et un TextView. Les pages de ViewPager sont des fragments avec un seul ImageView en eux. Je charge des images avec Glide dans l'ImageView.Album photo Android avec ViewPager et Glide

Je souhaite que la largeur de l'image remplisse l'écran et que la hauteur soit redimensionnée pour conserver le rapport de l'image. Le problème est que

<android.support.v4.view.ViewPager 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

avec

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

en elle ne fonctionnera pas. La hauteur de l'image est toujours 0.

J'ai trouvé une solution sous-optimale: https://stackoverflow.com/a/19505733/4420321. Le problème est que j'ai besoin de connaître le ratio exact de l'image pour redimensionner la hauteur correctement.

Actuellement, il fonctionne avec des images 800x600, mais pas avec les autres. Y a-t-il un moyen de le faire fonctionner avec n'importe quel ratio? Ou y a-t-il une meilleure solution pour ce problème?

enter image description here

Répondre

0

Cela rendrait l'image pour remplir la largeur de l'écran et la hauteur selon le rapport d'aspect de l'image originale. Pour utiliser cette méthode, vous devez coder en dur le format d'image.

Display display = getWindowManager().getDefaultDisplay(); 
ImageView imageView = (LinearLayout) findViewById(R.id.imageView); 
int width = display.getWidth(); 
int height = (int) width * 0.75; // 0.75 if image aspect ration is 4:3, change accordingly 
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, height); 

Je pense que cela résoudra votre problème.

+0

Merci pour votre réponse, mais c'est exactement ma solution actuelle. J'ai besoin de coder le format d'image, mais que se passe-t-il si je ne le connais pas ou s'il y a plusieurs images avec des rapports différents? Par exemple j'ai un ensemble d'images de 3 images 800x600 et un autre de 3 1920x1080. – hashtagslam