我们如何在android中为imageview设置高度和宽度dp?

时间:2014-01-06 11:12:48

标签: android imageview

我想在android中以dpImageView实际设置高度和宽度。

我怎样才能做到这一点?

7 个答案:

答案 0 :(得分:64)

设定宽度&高度与dp:

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

在dimens.xml中提供键的值:

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

答案 1 :(得分:25)

使用显示指标获取销售因素,然后只使用一些简单的数学 - 例如,如果我想要200x150dp:

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

然后设置图像视图大小:

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

答案 2 :(得分:5)

这可能更简单,应该可以解决问题:

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);

在你的dimens.xml中

<dimen name="item_height">80dp</dimen> 
<dimen name="item_width">80dp</dimen> 

答案 3 :(得分:1)

这可能对你有所帮助......

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

答案 4 :(得分:1)

  1. 首先选择理想的倾角并将其分配给var。
  2.   

    int dipAmount = 350;

    1. 然后阅读ImageView的高度。
    2.   

      float scale = imageview.Resource.DisplayMetrics.Density;

      1. 从px转换为dip。
      2.   

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

        1. 将高度设置为imageview。
        2.   

          imageView.LayoutParameters.Height=converter;

答案 5 :(得分:0)

 final float scale = getContext().getResources().getDisplayMetrics().density;
int height_ = (int) (250 * scale + 0.5f);
int width_ = (int) (250 * scale + 0.5f);

250位于dp

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

ImageView.setLayoutParams(params);

答案 6 :(得分:-2)

试试这个:

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

如果可以接受,请给我你的反馈意见。这对我有用。