Comment Pouvons-nous définir la hauteur et la largeur dp pour imageview sous android?

<!-Je voudrais mettre la hauteur et la largeur en dpImageView dans android, de façon pragmatique.

Comment puis-je y parvenir?

21
demandé sur Atef Hares 2014-01-06 15:12:48

7 réponses

définir la largeur et la hauteur avec dp:

imageview.getLayoutParams().height = (int) getResources().getDimension(R.dimen.imageview_height);
imageview.getLayoutParams().width = (int) getResources().getDimension(R.dimen.imageview_width);

Dans votre dimens.xml fournir des valeurs pour les touches :

<dimen name="imageview_width">50dp</dimen> 
<dimen name="imageview_height">50dp</dimen> 
46
répondu Andros 2014-01-06 12:16:45

utilisez les paramètres d'affichage pour obtenir le facteur de vente et puis juste quelques mathématiques simples-exemple, si je veux 200x150dp:

final float scale = getResources().getDisplayMetrics().density;
int dpWidthInPx  = (int) (200 * scale);
int dpHeightInPx = (int) (150 * scale);

puis définissez la taille de la vue d'image:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(dpWidthInPx, dpHeightInPx);
imageView.setLayoutParams(layoutParams);
23
répondu sham 2014-05-09 23:19:35

Cela peut être plus simple et devrait faire l'affaire:

ImageView im = (ImageView)findViewById(R.id.image1);
LayoutParams params = im.getLayoutParams();
params.height = getActivity().getResources().getDimensionPixelSize(R.dimen.item_height);
params.width = getActivity().getResources().getDimensionPixelSize(R.dimen.item_width);

Et dans votre dimens.xml

<dimen name="item_height">80dp</dimen> 
<dimen name="item_width">80dp</dimen> 
3
répondu velval 2016-02-23 06:21:01
  1. d'abord choisir un trempage souhaitable et l'attribuer à un var.

int dipAmount=350;

  1. puis lire la hauteur de votre ImageView.

float scale = imageview.Resource.DisplayMetrics.Density;

  1. passer de px à dip.

int converter =(int) (350 * scale + 0.5f);

  1. Réglez la hauteur à imageview.

imageView.LayoutParameters.Height=converter;

1
répondu Andreas Constantinou 2017-01-12 11:41:55

ceci peut vous aider...

ImageView im = (ImageView)findViewById(R.id.image1);
LayoutParams params = im.getLayoutParams();
params.height = 100;
params.width = 100;
0
répondu lalith 2014-01-06 11:38:10
 final float scale = getContext().getResources().getDisplayMetrics().density;
int height_ = (int) (250 * scale + 0.5f);
int width_ = (int) (250 * scale + 0.5f);

250 est en dp

ViewGroup.LayoutParams params = ImageView.getLayoutParams();
params.height = height_;
params.width = width_;

ImageView.setLayoutParams(params);
0
répondu Tejas Gawali 2018-07-12 11:20:46

essaye ceci:

image_view.getLayoutParams().height = 20;
image_view.getLayoutParams().width= 20;

Donnez-moi vos commentaires si c'est acceptable. C'est un travail pour moi.

-2
répondu Satyaki Mukherjee 2014-01-06 11:16:18