Android图像1/3的屏幕与scrollview

时间:2014-08-06 07:26:16

标签: android android-layout

在我的应用程序中,我从我的网络服务器下载图像(每个图像具有不同的分辨率),但我想在片段屏幕上一致地显示这些图像。

理想情况下,我希望图片的宽度为=" match_parent"和高度恰好占据屏幕的1/3。此外,图像应该以内容布局的一部分显示,其他控件可能会比屏幕高度增大(因此需要滚动)。

我已经尝试将图像和其余内容放在LinearLayout中,然后将权重设置为1(最大权重为3),但由于图像和其他内容都在滚动视图中,因此它没有&#39似乎很有效。图像太大或太小(取决于图像的方向和分辨率),我的1/3设置似乎不受尊重。

除了将高度固定到预定(dp)值之外,还有什么方法可以做到这一点吗?我想避免这种情况,除非别无选择。

非常感谢,

1 个答案:

答案 0 :(得分:4)

您始终可以将每个图像的高度以编程方式设置为屏幕高度的1/3,如此

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int height = metrics.heightPixels;

    ImageView img = (ImageView) findViewById(R.id.image); 

    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) img.getLayoutParams();
    params.height = (int)height / 3;
    img.setLayoutParams(params);