2016-07-21 1 views
1

Je souhaite que la largeur et la hauteur de l'ImageView correspondent à l'ensemble de l'écran.Après l'utilisation de Layout Inflater pour agrandir la vue, je règle les paramètres Layout sur la vue.Mais la hauteur de l'image ne couvre pas tout l'écran. le code:Configuration LayoutParams ne fonctionne pas par programmation

LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View itemView = mLayoutInflater.inflate(R.layout.viewpager, container, false); 
    itemView.setLayoutParams(new ViewGroup.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT, 
      ViewGroup.LayoutParams.MATCH_PARENT)); 

    ImageView imageView = (ImageView) itemView.findViewById(R.id.viewpager_image); 
    /*imageView.setLayoutParams(new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.MATCH_PARENT, 
      LinearLayout.LayoutParams.MATCH_PARENT));*/ 
    imageView.setImageResource(mResources[position]); 
    container.addView(itemView); 
    return itemView; 

Faire cela ma largeur est correspondant à la taille de l'écran, mais la hauteur ne correspond pas à la mise en page screen.The je suis Gonflage a disposition linéaire (largeur, hauteur - MATCH_PARENT) et son point de vue de l'image de l'enfant (largeur, hauteur - MATCH_PARENT) .Je ne sais pas ce que je fais mal ici.Veuillez aider.Merci.

+0

Avez-vous vérifié si la hauteur de imageview est approprié la taille de l'écran et pas l'image réelle? Essayez de définir scaleType sur FitXY en mode Image? –

+0

@ Dr.aNdRO oui, cela a fonctionné avec la mise à l'échelle scaleThanks – andy

Répondre

1

Ajouter ces lignes dans votre code

imageView.setScaleType(ScaleType.FIT_XY); 

ou

imageView.setScaleType(ScaleType.CENTER); 

Essayez cela, il peut travailler

1
DisplayMetrics displaymetrics = new DisplayMetrics(); 
    //if in activity then use 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    //if in adapter then use 
    context.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    //if in fragment then use 
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    int width = displaymetrics.widthPixels; 
    int height = displaymetrics.heightPixels; 
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height); 
    imageView.setLayoutParams(layoutParams);