如何在android中设置imageview的高度和宽度dp?

如何在android中设置imageview的高度和宽度dp?,android,imageview,Android,Imageview,我想为android中的ImageView实用地设置dp中的高度和宽度 我如何才能做到这一点?试试这个: image_view.getLayoutParams().height = 20; image_view.getLayoutParams().width= 20; 如果可以接受,请给我你的反馈。这是我的工作。使用dp设置宽度和高度: imageview.getLayoutParams().height = (int) getResources().getDimension(R.dimen.

我想为android中的
ImageView
实用地设置
dp中的高度和宽度

我如何才能做到这一点?

试试这个:

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

如果可以接受,请给我你的反馈。这是我的工作。

使用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> 
50dp
50dp
这可能会帮助您

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

使用显示指标获得销售系数,然后使用一些简单的数学-例如,如果我想要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);

这可能更简单,应该可以做到:

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> 
80dp
80dp
  • 首先,选择一个理想的倾角并将其分配给var
  • int DIPANTUM=350

  • 然后读取图像视图的高度
  • float scale=imageview.Resource.DisplayMetrics.Density

  • 从px转换为dip
  • int转换器=(int)(350*刻度+0.5f)

  • 将高度设置为imageview
  • imageView.LayoutParameters.Height=转换器

    250是dp

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

    ,这是你接受的答案!谢谢Andros,但是我在尝试实现时遇到了不兼容的类型错误。如何解决它或者我在这里遗漏了什么..回答得很好dude.DisplayMetrics metrics=getWindowManager().getDefaultDisplay().getMetrics(metrics);浮点逻辑密度=metrics.density;int px=(int)(dp*逻辑密度+0.5);这可能有助于你将像素转换为dpLalith。0.5是所有设备的共同因素还是会有所不同。请选择正确答案,如果它满足你的问题,为什么说“更简单”?我看不出这里面有任何整洁或简单。。。
    ViewGroup.LayoutParams params = ImageView.getLayoutParams();
    params.height = height_;
    params.width = width_;
    
    ImageView.setLayoutParams(params);