0

我一直在尝试在 Java 中以编程方式设置 ImageView 的高度,但是当我启动它时,它就消失了。

代码类似于以下

ImageView img = (ImageView)findViewById(R.id.image);
img.setImageResource(picture[i];
DisplayMetrics dm = new DisplayMetrics();
int width = dm.widhtPixels;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, width/3);
img.setLayoutParams(layoutParams);

也许我必须将图像和另一个文本(代码中未提及)附加给 CustomAdapter 以创建 ListView。

谢谢您的帮助 :-)

4

2 回答 2

2

我刚刚测试了你的代码。问题与宽度参数以及您如何获得它有关。如果您传递文字值,则设置参数的代码将起作用

如果你尝试这个(我知道这不是你想要的,请耐心等待)

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(150, 50);
img.setLayoutParams(layoutParams);

您将看到它有效(您不应该使用这样的文字,至少在不将它们缩放到 DP 的情况下不能使用),但这不是您想要的,因为您希望在宽度之外动态地执行它。

在 onCreate() 中显然存在获取宽度和高度的问题,请参阅此问题和相应的答案 How to get the width and height of an Image View in android?

希望这会缩小您的搜索范围。

于 2013-08-30T14:20:06.750 回答
0

你想达到什么目的,图像总是屏幕宽度的 1/3 吗?

如果是这样,您可以在布局中使用布局权重轻松完成此操作。在父级上设置 weightSum=3,然后在图像视图上使用 layout_weight=1。

于 2013-08-30T14:02:39.743 回答