通过以编程方式设置高度,视图消失

时间:2013-08-30 13:47:56

标签: android listview view imageview height

我一直在尝试用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。

感谢您的帮助: - )

2 个答案:

答案 0 :(得分:1)

我刚刚测试了你的代码。问题在于宽度参数以及如何实现它。如果传递文字值

,设置参数的代码将起作用

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

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?

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

答案 1 :(得分:0)

你想要实现的是,图像总是1/3的屏幕宽度?

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