我一直在尝试用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。
感谢您的帮助: - )
答案 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。