web-dev-qa-db-fra.com

Comment pouvons-nous définir la hauteur et la largeur dp pour imageview dans Android?

Je voudrais définir la hauteur et la largeur dans dp pour ImageView dans Android de manière pragmatique.

Comment puis-je atteindre cet objectif?

22
Karthik

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 fichier dimens.xml, indiquez les valeurs des clés:

<dimen name="imageview_width">50dp</dimen> 
<dimen name="imageview_height">50dp</dimen> 
54
Andros

Utilisez les mesures d'affichage pour obtenir le facteur de vente, puis quelques calculs simples - par 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 d'affichage de l'image:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(dpWidthInPx, dpHeightInPx);
imageView.setLayoutParams(layoutParams);
24
sham

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> 
5
velval
 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
Tejas Gawali

Cela peut vous aider ... 

ImageView im = (ImageView)findViewById(R.id.image1);
LayoutParams params = im.getLayoutParams();
params.height = 100;
params.width = 100;
0
lalith