5

我有一些分辨率为 320x320 的图像。

layout_width它设置值fill_parent

但我不知道我应该为layout_height

我希望高度和宽度的大小相同。

如果我将layout_height=wrap_content宽度设置为两倍,那么高度...

我怎样才能增加一些布局来填充 x 中的所有空间但让 y 大小与 x 的大小一样

4

4 回答 4

2
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

int width = metrics.widthPixels;

现在使用宽度动态设置高度。

这是设备屏幕的宽度,因为您使用的是 layout_width = fill parent。

于 2012-07-02T09:16:29.177 回答
1

如果我设置 layout_height=wrap_content 宽度是高度的两倍...

我认为这是因为每当您将高度/宽度设置为它时,WRAP_CONTENT 它会使布局变得尽可能宽或高以适应布局的背景,布局的子视图因此如果您添加更多的子视图,它会变得更大布局

当设置为FILL_PARENTthen 时,它会占用整个可见的左侧屏幕区域

解决方案

  1. 要么你可以给dp你的布局一些固定大小,然后你将不得不为设备的不同大小制作不同的 XML 文件。
  2. 您可以尝试使用 LinearLayout 的weightSumlayout_weight属性,并通过应用适当的权重来管理布局的高度和宽度。[我个人推荐使用weight]
于 2012-07-02T09:18:20.953 回答
1

您是否尝试过明确设置 layout_height

例如

android:layout_height="320dip"
于 2012-07-02T09:06:18.750 回答
1

在您的活动onCreate(...)方法中,在调用后立即setContentView(...);

用这个:

ImageView image = (ImageView)findViewById(R.id.image);
image.getLayoutParams().width = image.getHeight();
于 2012-07-02T09:09:26.570 回答