Как установить высоту и ширину dp для просмотра изображений в android?

Я хотел бы установить высоту и ширину в dp для ImageView в андроиде прагматично.

Как я могу это достичь?

Ответ 1

Задайте ширину и высоту с помощью 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> 

Ответ 2

Используйте показатели отображения, чтобы получить коэффициент продажи, а затем просто некоторые простые математические примеры - например, если я хочу 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);

Ответ 3

Это может быть проще и сделать трюк:

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> 

Ответ 4

  • сначала выберите желаемое падение и назначьте его var.

int dipAmount = 350;

  1. Затем прочитайте высоту вашего ImageView.

float scale = imageview.Resource.DisplayMetrics.Density;

  1. Преобразовать из px в dip.

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

  1. Задайте высоту для просмотра изображений.

imageView.LayoutParameters.Height=converter;

Ответ 5

Это может помочь вам...

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

Ответ 6

Попробуйте следующее:

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

Дайте мне свои отзывы, если это приемлемо. Это работает для меня.